エクスプローラーでファイルをコピーすると、そのバラバラの順番でファイルコピーが実行されるので、コピー先のファイルシステムの中もバラバラになります。
普通は問題にならないと思うのですが、一部の音楽プレーヤーやカーナビなどは、そのファイルシステムの順番で音楽を再生してしまうので、思ったように曲が再生されないなどの問題が起きます。
解決方法として、専用のソフトを使ってファイルシステムを直接並び替えるという方法もあるのですが、標準の方法でもないのでリスクもあり、リスク無しで解決しようとすると、ファイルをソートした順番でコピーするということになります。
ソートしながらコピーもフリーウェアなどを使ってもいいのですが、Windowsの標準機能だけでも実現することができます。
ということでバッチファイルを作成してみました。
【SortCopy.bat】
echo off
setlocal enabledelayedexpansion
for /F "usebackq delims==" %%i in (`SortCopyEscape.bat %1`) do (
set SRC=%%i
set DEST=!SRC:%1=%2!
echo F | xcopy /F /Y !SRC! !DEST! >nul
echo copy !SRC! → !DEST!
)
endlocal
【SortCopyEscape.bat】
@echo off
for /F "usebackq delims==" %%i in (`dir /S /B /A:-D %1 ^| SORT`) do (
call :REPLACE "%%i"
)
exit /b
:REPLACE
set TMP=%1
echo %TMP:!=^!%
exit /b
使い方は、2つのファイルをカレントディレクトリにコピーして、
SorrtCopy <コピー元フォルダ> <コピー先フォルダ>
です。
自由に使ってもらってかまいませんが、使用したことで起きた結果について責任を取りませんので、各自の責任でお願いします。
0 件のコメント:
コメントを投稿