タスクスケジューラを使ったりして、共有フォルダとローカルを同期処理する場合に、実行するBATファイルに共有フォルダパスをセットする必要がある
同期用のバッチファイルを実行した共有フォルダの位置をセットして、BATファイルを生成するBATファイルの例
rem ローカル変数定義
setlocal
rem カレントディレクトリ取得
set current_dir=%~dp0
rem 生成するバッチファイル
set FName0=C:\tools\配信.bat
rem リダイレクトで出力 >で新規
echo @echo off > %FName0%
rem リダイレクトで出力 >>で追記
echo set FName1=%current_dir%配信data >> %FName0%
rem 環境変数の記述自体を出力した時は、%を2つ記述
echo set FName2=C:\Users\%%USERNAME%%\Desktop >> %FName0%
※リダイレクトを連続すると処理が端末によっては処理が追い付かなくて、抜けることがあるので、間に待ちを入れる必要がある場合がある
rem 1秒待ち
timeout /t 1 /nobreak > nul
固定のファイルと動的に作成するファイルを結合する
ファイル名順に結合される
test01.bat 動的に作成
test02.bat 固定で準備
test01.batとtest02.batを結合して、test.batファイルを作成
copy test*.bat test.bat /b
※この操作で、複数のCSVファイルやログファイルを一つのファイルにまとめることも可能
※普通のコピーするとファイルの末尾に、ゴミコードの行が出来てしまうので、/bオプションを付けてバイナリモードでコピーする
※COPY /? HELP参照
複数のファイルを追加するときは、受け側に 1 個のファイルを指定し、送り側に複数のファイルを指定します (ワイルドカードを使うか、ファイル 1 + ファイル 2 +ファイル 3 と指定します)。