このスクリプトはコマンド ラインからは機能するのに、Windows バッチ ファイルに配置すると機能しないのはなぜですか?

このスクリプトはコマンド ラインからは機能するのに、Windows バッチ ファイルに配置すると機能しないのはなぜですか?

これはコマンドラインから実行できるスクリプトです:

(for /r %i in (*) do @echo %~fsi) | clip

しかし、バッチ ファイル内では、予期しない括弧に関する構文エラーが発生します。

) was unexpected at this time.

(for /r ~fsi) | clip

答え1

これをバッチで試してください:

@Echo Off
(for /r %%i in (*) do echo %%~fsi) | clip

バッチ ファイルで実行するには、% 記号を 2 つ重ねる必要があります。

関連情報