Bagaimana Anda mengulangi setiap file dalam direktori dengan file .bat atau .cmd?
Untuk mempermudah, berikan jawaban yang hanya menyuarakan nama file atau path file.
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 itufor
? Menurut dokumen bantuan,/f
bendera terbuka dan membaca setiap file. Apakah itu perlu dilakukan gema atau ganti nama file?/f
setelahFOR
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:
Perintah forfiles tersedia di Windows Vista dan yang lebih tinggi.
sumber
Metode termudah:
Dari Command Line, gunakan:
Dari File Batch (gandakan tanda% persen):
Dari File Batch dengan folder yang ditentukan sebagai parameter 1:
sumber
dir /B
output denganfor
.Menggunakan
dengan:
sumber
%%var was unexpected at this time.
Bisakah Anda memberikan contoh yang tepat? Saya mencoba banyak variasifor /r . %%var in (*.*) do echo %%var
Cara lain:
sumber
"%~nf"
adalah singkatan dari nama file tanpa ekstensi, di manaf
nama variabel yang ditentukan difor
bagian. Docs: docs.microsoft.com/en-us/previous-versions/windows/it-pro/…Saya memiliki beberapa malware yang menandai semua file dalam direktori sebagai hidden / system / readonly. Jika orang lain menemukan diri mereka dalam situasi ini, masuk ke direktori dan jalankan
for /f "delims=|" %f in ('forfiles') do attrib -s -h -r %f
.sumber