07/10/09 04:04:20 M1tSuv/f0
>>769
自己レスですがちょっと改良したので。
もっとスリムに作れる気がするので暇な方やっていただけると。
変更点
・引数を指定していた場合、引数を優先して処理するようにした
・最終的に残るファイルを.logのみにし、HDDを節約
・ログファイルに残るパスを相対パスにし、更にHDDを節約
@echo off
set cd2=%cd%
rem 引数を指定している場合は引数を優先
if not "%~1"=="" set cd=%~1
echo サブフォルダのリストを作成しています...
echo 場合によっては時間が掛かることがあります.
rem ディレクトリパスの長さを取得
set /a N=0
:loop
call set W=%%cd:~%N%,1^%%
set /a N+=1
if "%W%"=="" goto exit
goto loop
:exit
rem DefragFolders.txtを初期化&パスの簡易化
echo.>%tmp%\DefragFolders.txt
dir /ad /s /b "%cd%">%tmp%\Directorys.txt
for /f "delims=" %%W in (%tmp%\Directorys.txt) do (
set directory=%%W
call echo %%directory:~%N%^%%>>%tmp%\DefragFolders.txt
)
del /q %tmp%\Directorys.txt>nul