前提・実現したいこと
今robocopyでのファイル同期を実行した際、
外部のテキストフォルダからforコマンドで特定の列のトークンを抜き出して、
ログファイル名をつけようとしています。
ですが、トークンが抜き出せず、ログファイル名が正しく表示されません。
どなたか解決方法をご存知でしたら、教えてください。
バッチ自体は、複数ある同期対象ファイルを、外部テキストファイルから取り出してループすることで、一つのバッチで同期を完了させようとしています。
ただログについては、一つのログだと複数のファイルがログに書き込む時間が重なり、問題が発生しそうなため、ログファイルは同期対象ファイルごとに毎日ログローテーションさせようとしています。
どうか力を貸してください。
発生している問題・エラーメッセージ
下のソースコードを実行してコマンドプロンプトにechoを出力すると、 echo 同期元ディレクトリ1 echo 同期先ディレクトリ1 echo ファイル名1 echo c:\work\yyyymmdd_backup_.log となり、backup_の後ろに%%cの内容であるファイル名1が入らない
該当のソースコード
rem 実行しているバッチ
rem @echo off
for /f "tokens=1,2,3" %%a in do (
set logfile=c:\work%date:~0,4%-%date:~5,2%-%date:~8,2%backup%%c.log
rem 上の%%cに外部テキストファイルから、トークンを入れようとしています。
start /min robocopy %%a %%b /MIR /R:0 /W:0 /NP /NDL /XJD /XJF /LOG+:%logfile%
echo %%a
echo %%b
echo %%c
echo %logfile%
外部テキストファイル
同期元ディレクトリ1 同期先ディレクトリ1 ファイル名1
同期元ディレクトリ2 同期先ディレクトリ2 ファイル名2
同期元ディレクトリ3 同期先ディレクトリ3 ファイル名3
……
試したこと
%%cの部分を、
%c%
%%%c%
ともしましたが、入りませんでした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/28 00:32
退会済みユーザー
2019/02/28 00:55
2019/02/28 01:40