前提・実現したいこと
「D:\test\hoge」フォルダにある拡張子が「log」のファイルの中身を「D:\test\hoge\fuga%S%_%SV_NAME%.log」ファイルにコピーするようなバッチファイルを作成したいです。
拡張子が「log」のファイルは複数あり、それぞれの中身を別ファイルにコピーしたいです。
しかし、以下のエラーが出ており、構文の誤りがどう誤っているかが分からないので、ご教授いただきたいです。
ファイル名は動いてから修正しようと考えているため、遅延評価変数が誤っている可能性がありますが、ご了承ください。
発生している問題・エラーメッセージ
コマンドの構文が誤っています。
該当のソースコード(エラーに関係しそうな部分を抜粋)
bat
1SET SV_NAME=aaa 2FOR /R D:\test\hoge %%i in (*.log) do ( 3 SET FNAME=%%i 4 SET S=!FNAME!:~0,21! 5 SET COPY_SRC=D:\test\hoge\!FNAME! 6 SET COPY_DST=D:\test\hoge\fuga\%S%_%SV_NAME%.log 7 COPY %COPY_SRC% %COPY_DST% 8 IF NOT ERRORLEVEL 0 ( 9 GOTO :ERR1 10 ) 11) 12EXIT /B 0
試したこと
FOR文ではなく、ファイル名を直に指定して実行するとしたいように動きました。
FOR文の直前でECHOで文字を出力しようとすると、出力されました。
FOR文の直後(SET FNAMEの直前)で ECHOで文字を出力すると、出力されませんでした。
なので、FOR文が誤っていると考えています。
補足情報(FW/ツールのバージョンなど)
Windows Server2016で動作させたいです。
PowerShellが使用できないため、バッチファイルで作成しています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/22 00:56