2009-08-20 10 views

Odpowiedz

13

Tak, można to zrobić za pomocą komendy for z przełącznikiem /r, np .:

for /r %%f in (*) do echo %%f 

Zobacz także this question dla przykładu.

4

Możesz użyć polecenia FOR z przełącznikiem /r, który będzie chodził po drzewie katalogów, wykonując cokolwiek, co określisz w instrukcji DO w każdym katalogu. Tam możesz zagnieździć kolejną instrukcję FOR, używając dir /b *.* w bloku SET.

1

Na szczęście mam całkiem podobny cel w odniesieniu do tego wątku. Wierzę INSTRUKCJA

dir /b /s /ad *.* [enter] 

będzie produkować Drzewo katalogów w wyniku

complete_path\dir_01_lev_01 
complete_path\dir_02_lev_01 
complete_path\dir_03_lev_01 
complete_path\dir_01_lev_01\dir_11_lev_02 
complete_path\dir_01_lev_01\dir_12_lev_02 
complete_path\dir_02_lev_01\dir_13_lev_02 
complete_path\dir_02_lev_01\dir_14_lev_02 
complete_path\dir_02_lev_01\dir_15_lev_02 
complete_path\dir_03_lev_01\dir_16_lev_02 

Ale chcę prowadzić jak poniżej

complete_path\dir_01_lev_01 
complete_path\dir_01_lev_01\dir_11_lev_02 
complete_path\dir_01_lev_01\dir_12_lev_02 
complete_path\dir_02_lev_01 
complete_path\dir_02_lev_01\dir_13_lev_02 
complete_path\dir_02_lev_01\dir_14_lev_02 
complete_path\dir_02_lev_01\dir_15_lev_02 
complete_path\dir_03_lev_01 
complete_path\dir_03_lev_01\dir_16_lev_02 

tak, to rodzi SCRIPT :)

@echo off 
rem 
rem ::: My name is Tree-Folder-8-Level.cmd 
rem 
setlocal 
rem ::: Put started PATH here 
set i01=complete_path 
for /f "delims=" %%a in ('dir "%i01%" /ad /on /b') do call :p001 "%%a" 
endlocal 
goto :eof 

:p001 
rem ::: Display 1st LEVEL of started PATH 
echo %~1 
for /f "delims=" %%b in ('dir "%i01%\%~1" /ad /on /b') do call :p002 "%~1\%%b" 
goto :eof 

:p002 
rem ::: Display 2nd LEVEL of started PATH 
echo %~1 
for /f "delims=" %%c in ('dir "%i01%\%~1" /ad /on /b') do call :p003 "%~1\%%c" 
goto :eof 

:p003 
rem ::: Display 3rd LEVEL of started PATH 
echo %~1 
for /f "delims=" %%d in ('dir "%i01%\%~1" /ad /on /b') do call :p004 "%~1\%%d" 
goto :eof 

:p004 
rem ::: Display 4th LEVEL of started PATH 
echo %~1 
for /f "delims=" %%e in ('dir "%i01%\%~1" /ad /on /b') do call :p005 "%~1\%%e" 
goto :eof 

:p005 
rem ::: Display 5th LEVEL of started PATH 
echo %~1 
for /f "delims=" %%f in ('dir "%i01%\%~1" /ad /on /b') do call :p006 "%~1\%%f" 
goto :eof 

:p006 
rem ::: Display 6th LEVEL of started PATH 
echo %~1 
for /f "delims=" %%g in ('dir "%i01%\%~1" /ad /on /b') do call :p007 "%~1\%%g" 
goto :eof 

:p007 
rem ::: Display 7th LEVEL of started PATH 
rem :::  and 8th LEVEL of started PATH 
echo %~1 
for /f "delims=" %%h in ('dir "%i01%\%~1" /ad /on /b') do echo %~1\%%h 
goto :eof 

Jaśniejsze pomysły są welco mnie. :)

0
dir /b /s /ad *.* | sort 

To powinno dać takie same wyniki niezależnie od głębokości toru

Powiązane problemy