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 /f
perintah. 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 usebackq
opsi 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
/f
dibutuhkan setelah itu for
? Menurut dokumen bantuan, /f
bendera terbuka dan membaca setiap file. Apakah itu perlu dilakukan gema atau ganti nama file?
/f
setelah FOR
membatasi ke file. Demikian pula, /d
membatasi ke direktori (folder) dan /r
memerintahkannya 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 /B
output 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 f
nama variabel yang ditentukan di for
bagian. Docs: docs.microsoft.com/en-us/previous-versions/windows/it-pro/…