@echo off rem 指定ホルダ内の処理のみを行うバッチファイル rem 引数 %1 にホルダ名をフルパスで受け取る rem %2 に自分自身が起動された階層を受け取る rem %3 に、出力ファイル名を受け取る rem 行頭に 階層分のインデント(4 space)をとり、ファイル名を出力 rem 指定ホルダ内にサブホルダがあれば、 rem ファイル名と同様にサブホルダ名を出力し、階層に1を加え、 rem サブホルダのフルパスを指定して自分自身 %0 を呼び出す set Count=0 set sphead= :loop if %Count%==%2 goto outloop set sphead= %sphead% set /a Count+=1 goto loop :outloop for /f "usebackq delims==" %%i in (`dir /a:-d /b "%~1"`) do ( echo %sphead%%%i >> "%~3" ) set /a Count=%2 + 1 for /f "usebackq delims==" %%i in (`dir /a:d /b "%~1"`) do ( echo %sphead%%%i >> "%~3" @call "%~0" "%~1\%%i" %Count% "%~3" )