ファイル・フォルダ管理 - バッチファイル
ファイルを先頭N文字のフォルダ毎に分類
これを こうしたい。 \dir → \dir |- 20170801.csv |- \201708 |- 20170802.csv | |- 20170801.csv |- 20170803.csv | |- 20170802.csv |- 20171010.csv | `- 20170803.csv |- 20171025.csv |- \201710 `- 20171225.csv | |- 20171010.csv | `- 20171025.csv `- \201712 `- 20171225.csv
- distribute_left6dir.bat
@@echo off rem 実行フォルダ内にあるCSVを、ファイル名の先頭6文字のフォルダごとに分類 for %%A in (*.csv) do call :Main %%A %%~nxA goto End :Main set bname=%2 set dirname=%bname:~0,6% if not exist %dirname% mkdir %dirname% move %1 %dirname% goto :eof :End pause
バッチファイルではfor文内でのsetが上手くいかないので、関数のように外部化している。
フォルダ構造のみコピー
空のフォルダは除く
xcopy /t コピー元パス コピー先パス
空のフォルダもコピー
xcopy /t /e コピー元パス コピー先パス