home wiki.fukuchiharuki.me
Menu

  • 追加された行はこの色です。
  • 削除された行はこの色です。
#author("2017-12-07T04:54:16+00:00","default:haruki","haruki")
* キーワード [#h19c3c3c]
- Windows
- bat
- tsv

* したいこと [#scdd914d]

tsvを読んでファイルをコピーしたい、バッチで。

tsvには次のような感じでコピー元とコピー先が定義されているとする。

 path\to\コピー元1	path\to\コピー先1
 path\to\コピー元2	path\to\コピー先2
 ...

* どうやって [#k2b02ec8]

こう書いた。

 @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

* ちなみに [#j9291ef7]

久しぶりにWindowsバッチなのでかなり手こずった。いろいろ脆いけど、ファイル収集用なので気にしない。


* 参考 [#kabd6d3f]
- [[【bat】Windowsのバッチファイル(*.bat)の書き方自分用まとめ - Qiita>https://qiita.com/sksmnagisa/items/8c4c1788af44cc1dc63a]]