W pliku wsadowym systemu Windows istnieje sposób na przechodzenie przez hierarchię folderów/podfolderów, wykonując jakąś akcję na każdym pliku?Jak przejść drzewo folderów/poddrzew w pliku wsadowym Windows?
15
A
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
- 1. Jak przejść do katalogu bieżącego użytkownika w pliku wsadowym
- 2. Jak uzyskać status wyjścia programu Java w pliku wsadowym Windows
- 3. Jak połączyć ciągi w pliku wsadowym systemu Windows dla pętli?
- 4. Jak korzystać z polecenia setx w pliku wsadowym systemu Windows
- 5. Jak ustawić katalog roboczy polecenia w pliku wsadowym Windows?
- 6. Jak uzyskać resztę argumentów w pliku wsadowym Windows?
- 7. Jak mogę sprawdzić rozmiar pliku w skrypcie wsadowym Windows?
- 8. Jak podzielić łańcuch na spacje w pliku wsadowym Windows?
- 9. Menu w pliku wsadowym
- 10. Pobierz ostatni argument wiersza poleceń w pliku wsadowym Windows
- 11. Uzyskiwanie nazwy pliku bez rozszerzenia w skrypcie wsadowym Windows
- 12. Czas wydruku w pliku wsadowym (milisekundy)
- 13. Deklarowanie i używanie zmiennej w pliku wsadowym Windows (.BAT)
- 14. Dokładny ciąg znaków Echo w pliku wsadowym Windows?
- 15. Odczytywanie wartości z pliku w skrypcie wsadowym Windows
- 16. wymiana String w pliku wsadowym
- 17. Testowanie atrybutu pliku w pliku wsadowym
- 18. Polecenie uśpienia w pliku wsadowym?
- 19. Jak uzyskać wczorajszą datę w pliku wsadowym?
- 20. Jak korzystać z SETLOCAL w pliku wsadowym?
- 21. Jak zabić drzewo procesów w systemie Windows
- 22. Podział zmiennoprzecinkowy w pliku wsadowym
- 23. Przetwarzanie ciąg w pliku wsadowym
- 24. Co "&&" w tym pliku wsadowym?
- 25. Jak mogę przejść drzewo YAML za pomocą YAML :: Tiny Perla?
- 26. Windows: ustanów powiązanie plików z plikiem wsadowym
- 27. Jak przejść do konta administratora w emacs w systemie Windows?
- 28. Wiersz poleceń SQLPLUS z plikiem wsadowym Windows
- 29. Jak uzyskać dwa lub więcej poleceń razem w pliku wsadowym
- 30. wywołanie klasy java w pliku wsadowym