poleceń Wykorzystanie linia:
for /f %f in (`dir /b c:\`) do echo %f
wykorzystanie pliku wsadowego:
for /f %%f in (`dir /b c:\`) do echo %%f
Aktualizacja: jeśli katalog zawiera pliki z przestrzeni nazw, trzeba zmienić separator komendy for /f
jest używane. na przykład możesz użyć char char.
for /f "delims=|" %%f in ('dir /b c:\') do echo %%f
Aktualizacja 2 (szybkie rok i pół roku po pierwotnej odpowiedzi :-)) Jeśli nazwa katalogu sama ma spacji w nazwie, można skorzystać z opcji usebackq
na for
:
for /f "usebackq delims=|" %%f in (`dir /b "c:\program files"`) do echo %%f
A jeśli trzeba użyć przekierowania wyjścia lub sztywne polecenia, należy użyć char escape (^
):
for /f "usebackq delims=|" %%f in (`dir /b "c:\program files" ^| findstr /i microsoft`) do echo %%f
Próbowałem wyliczyć pliki w bieżącym katalogu za pomocą tego polecenia [for/f %% f in ('dir/b.') do echo %% f] .. Niestety pliki ze spacjami miały swoją nazwę wydrukowaną na ich pierwszym miejscu ..? Dzięki –
Przynajmniej dla niektórych poleceń, zmienna pliku powinna być ujęta w podwójny cudzysłów. – Jirka
Jest to również przydatne: Jak zrobić wiele rzeczy do każdego pliku w katalogu ze skryptem wsadowym http://stackoverflow.com/questions/2304867/how-to-do-multiple-things-to-each-file-in -a-katalog-z-skryptem wsadowym? lq = 1 – Snekse