「Phone Recordings」というディレクトリに、このように名前が付けられた何千ものファイルがあります
[Jeff Reese] 10-20-2012 at 19_39_57.amr
[Jessie Tuttle] 11-26-2012 at 17_29_15.amr
[Jody Huth] 10-19-2012 at 19_49_56.amr
さらに複雑なことに、当社の記録システムは 2013 年に .amr から .3gp に次のように変更されました。
[Kim DeBouver] 10-21-2013 at 09_47_41.3gp
また、これには次のような他の問題があることにも気付きました。
[Jason R Tuttle] 10-26-2012 at 17_24_40.amr
さらに悪いことに...
[9154323469] 10-24-2012 at 18_38_25.amr
バッチ ファイルまたはその他のユーティリティを実行して、これらの各ファイルを次のように個別のサブ ディレクトリに移動できるようにしたいと考えています。
\Phone Recordings\[Kim DeBouver]\2012\ (all of the 2012 recordings)
\Phone Recordings\[Kim DeBouver]\2013\ (all of the 2013 recordings)
名前ごとに独自のフォルダーがあり、各名前内には記録された日付の独自の年があります。
他のすべての移動中に移動しない限り、フォルダー内にバッチファイルを置いてもかまいません。
再帰的にスキャンする必要はありません。
私がこれをしたとき、私は何か近いものがあると思いました:
for %%f in (*.*) do call :handlefile %%f
:handlefile
set pad=e:\Phone Recordings
for /f "delims= tokens=1,* " %%a in ("%1 %2 %3") do call :step %%a %%b
echo "%fn%" "%pad%"
@exit /B
:step
if !%2!==!! EXIT /B
if !%2!==!at! EXIT /B
if !%3!==!! EXIT /B
if !%3!==!at! EXIT /B
set pad=%pad%\%1 %2
for /f "delims=_ tokens=1,* " %%a in ("%1 %2 %3") do call :step %%a %%b
@EXIT /B
私はこれで間違った道を進んでいると思います...また、WindowsコマンドラインでRegExを使用できますか?