Bagaimana Anda mengulangi setiap file dalam direktori dengan file .bat atau .cmd?
Untuk mempermudah, berikan jawaban yang hanya menyuarakan nama file atau path file.
Bagaimana Anda mengulangi setiap file dalam direktori dengan file .bat atau .cmd?
Untuk mempermudah, berikan jawaban yang hanya menyuarakan nama file atau path file.
Jawaban:
Penggunaan baris perintah:
for /f %f in ('dir /b c:\') do echo %f
Penggunaan file batch:
for /f %%f in ('dir /b c:\') do echo %%f
Pembaruan : jika direktori berisi file dengan ruang dalam nama, Anda perlu mengubah pembatas yang digunakan for /fperintah. misalnya, Anda bisa menggunakan pipa char.
for /f "delims=|" %%f in ('dir /b c:\') do echo %%f
Pembaruan 2 : (cepat satu setengah tahun setelah jawaban asli :-)) Jika nama direktori itu sendiri memiliki ruang dalam nama, Anda dapat menggunakan usebackqopsi pada for:
for /f "usebackq delims=|" %%f in (`dir /b "c:\program files"`) do echo %%f
Dan jika Anda perlu menggunakan pengalihan output atau pemipaan perintah, gunakan karakter escape ( ^):
for /f "usebackq delims=|" %%f in (`dir /b "c:\program files" ^| findstr /i microsoft`) do echo %%f
/fdibutuhkan setelah itu for? Menurut dokumen bantuan, /fbendera terbuka dan membaca setiap file. Apakah itu perlu dilakukan gema atau ganti nama file?
/fsetelah FORmembatasi ke file. Demikian pula, /dmembatasi ke direktori (folder) dan /rmemerintahkannya untuk bersifat rekursif.
'dir /b "c:\program files"'seharusnya`dir /b "c:\program files"`
Atau, gunakan:
forfiles /s /m *.png /c "cmd /c echo @path"
Perintah forfiles tersedia di Windows Vista dan yang lebih tinggi.
Metode termudah:
Dari Command Line, gunakan:
for %f in (*.*) do echo %f
Dari File Batch (gandakan tanda% persen):
for %%f in (*.*) do echo %%f
Dari File Batch dengan folder yang ditentukan sebagai parameter 1:
for %%f in (%1\*.*) do echo %%f
dir /Boutput dengan for.
Menggunakan
for /r path %%var in (*.*) do some_command %%var
dengan:
%%var was unexpected at this time.Bisakah Anda memberikan contoh yang tepat? Saya mencoba banyak variasifor /r . %%var in (*.*) do echo %%var
Cara lain:
for %f in (*.mp4) do call ffmpeg -i "%~f" -vcodec copy -acodec copy "%~nf.avi"
"%~nf"adalah singkatan dari nama file tanpa ekstensi, di mana fnama variabel yang ditentukan di forbagian. Docs: docs.microsoft.com/en-us/previous-versions/windows/it-pro/…