- 履歴一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- シェル/bat/tsvを読んでファイルをコピーする へ行く。
- 1 (2017-12-07 (木) 13:54:16)
キーワード†
- Windows
- bat
- tsv
したいこと†
tsvを読んでファイルをコピーしたい、バッチで。
tsvには次のような感じでコピー元とコピー先が定義されているとする。
path\to\コピー元1 path\to\コピー先1 path\to\コピー元2 path\to\コピー先2 ...
どうやって†
こう書いた。
@cd /d %~dp0 @echo off set FOLDER_SRC=C:\path\to\コピー元ルート set FOLDER_DST=C:\path\to\コピー先ルート rem ### main for /f "delims= tokens=1,2" %%i in (filelist.tsv) do ( set FILE_SRC=%FOLDER_SRC%\%%i set FILE_DST=%FOLDER_DST%\%%j call :CopyFile ) exit /b rem ### copy file :CopyFile if exist "%FILE_SRC%" ( copy /y "%FILE_SRC%" "%FILE_DST%" > nul 2>&1 ) else ( echo "%FILE_SRC%" 1>&2 ) exit /b
ちなみに†
久しぶりにWindowsバッチなのでかなり手こずった。いろいろ脆いけど、ファイル収集用なので気にしない。