Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menjalankan perintah yang ditentukan untuk setiap file, dalam sekumpulan file.
Syntax
for {%% | %}<variable> in (<set>) do <command> [<commandlineoptions>]
Parameters
| Parameter | Description |
|---|---|
{%% \| %}<variable> |
Required. Mewakili parameter yang dapat diganti. Gunakan satu tanda persen (%) untuk menjalankan perintah for pada prompt perintah. Gunakan tanda persen ganda (%%) untuk menjalankan perintah for dalam file batch. Variabel peka huruf besar/kecil, dan harus diwakili dengan nilai abjad seperti %a, %b, atau %c. |
(<set>) |
Required. Menentukan satu atau beberapa file, direktori, atau string teks, atau rentang nilai untuk menjalankan perintah. Tanda kurung diperlukan. |
<command> |
Required. Menentukan perintah yang ingin Anda lakukan pada setiap file, direktori, atau string teks, atau pada rentang nilai yang disertakan dalam set. |
<commandlineoptions> |
Menentukan opsi baris perintah apa pun yang ingin Anda gunakan dengan perintah yang ditentukan. |
| /? | Menampilkan bantuan pada prompt perintah. |
Remarks
Anda dapat menggunakan perintah ini dalam file batch atau langsung dari prompt perintah.
Atribut berikut berlaku untuk perintah for :
Perintah ini menggantikan
% variableatau%% variabledengan setiap string teks dalam set yang ditentukan hingga perintah yang ditentukan memproses semua file.Nama variabel peka huruf besar/kecil, global, dan tidak lebih dari 52 dapat aktif sekaligus.
Untuk menghindari kebingungan dengan parameter batch,
%0melalui%9, Anda dapat menggunakan karakter apa pun untuk variabel kecuali angka 0 hingga 9. Untuk file batch sederhana, satu karakter seperti%%fakan berfungsi.Anda dapat menggunakan beberapa nilai untuk variabel dalam file batch kompleks untuk membedakan variabel yang berbeda yang dapat diganti.
Parameter set dapat mewakili satu grup file atau beberapa grup file. Anda dapat menggunakan karakter pengganti (* dan ?) untuk menentukan kumpulan file. Berikut ini adalah set file yang valid:
(*.doc) (*.doc *.txt *.me) (jan*.doc jan*.rpt feb*.doc feb*.rpt) (ar??1991.* ap??1991.*)Saat Anda menggunakan perintah ini, nilai pertama dalam set menggantikan
% variableatau%% variable, lalu perintah yang ditentukan memproses nilai ini. Ini berlanjut hingga semua file (atau grup file) yang sesuai dengan nilai yang ditetapkan diproses.In dan do bukanlah parameter, tetapi Anda harus menggunakannya dengan perintah ini. Jika Anda menghilangkan salah satu kata kunci ini, pesan kesalahan akan muncul.
Jika ekstensi perintah diaktifkan (yaitu default), bentuk tambahan for berikut didukung:
Hanya direktori: Jika set berisi karakter pengganti (* atau ?), perintah yang ditentukan dijalankan untuk setiap direktori (bukan kumpulan file di direktori tertentu) yang cocok dengan set. Sintaksnya adalah:
for /d {%%|%}<variable> in (<set>) do <command> [<commandlineoptions>]Rekursif: Berjalan di pohon direktori yang di-root di drive:path dan mengeksekusi pernyataan for di setiap direktori pohon. Jika tidak ada direktori yang ditentukan setelah /r, direktori saat ini digunakan sebagai direktori root. Jika set hanya satu titik (.), itu hanya menghitung pohon direktori. Sintaksnya adalah:
for /r [[<drive>:]<path>] {%%|%}<variable> in (<set>) do <command> [<commandlineoptions>]Iterasi rentang nilai: Gunakan variabel berulang untuk mengatur nilai awal (mulai#) lalu langkahi rentang nilai yang ditetapkan hingga nilai melebihi nilai akhir yang ditetapkan (akhir#). /l mengeksekusi iteratif dengan membandingkan start# dengan end#. Jika start# kurang dari end# perintah akan dieksekusi. Ketika variabel berulang melebihi end#, shell perintah keluar dari perulangan. Anda juga dapat menggunakan langkah negatif# untuk menelusuri rentang nilai penurunan. Misalnya, (1,1,5) menghasilkan urutan 1 2 3 4 5 dan (5,-1,1) menghasilkan urutan 5 4 3 2 1. Sintaksnya adalah:
for /l {%%|%}<variable> in (<start#>,<step#>,<end#>) do <command> [<commandlineoptions>]Iterasi dan penguraian file: Gunakan penguraian file untuk memproses output perintah, string, dan konten file. Gunakan variabel berulang untuk menentukan konten atau string yang ingin Anda periksa, dan gunakan berbagai opsi penguraiankata kunci untuk memodifikasi penguraian lebih lanjut. Gunakan opsi token parsingkeywords untuk menentukan token mana yang harus diteruskan sebagai variabel berulang. Saat digunakan tanpa opsi token, /f hanya akan memeriksa token pertama.
Penguraian file terdiri dari membaca output, string, atau konten file, lalu memecahnya menjadi baris teks individual dan mengurai setiap baris menjadi nol atau lebih token. Perulangan for kemudian dipanggil dengan nilai variabel berulang yang diatur ke token. Secara default, /f meneruskan token kosong pertama yang dipisahkan dari setiap baris setiap file. Baris kosong dilewati.
Sintaksnya adalah:
for /f [<parsingkeywords>] {%%|%}<variable> in (<set>) do <command> [<commandlineoptions>] for /f [<parsingkeywords>] {%%|%}<variable> in (<literalstring>) do <command> [<commandlineoptions>] for /f [<parsingkeywords>] {%%|%}<variable> in ('<command>') do <command> [<commandlineoptions>]Argumen set menentukan satu atau beberapa nama file. Setiap file dibuka, dibaca, dan diproses sebelum beralih ke file berikutnya dalam set. Untuk mengganti perilaku penguraian default, tentukan parsingkeywords. Ini adalah string yang dikutip yang berisi satu atau beberapa kata kunci untuk menentukan opsi penguraian yang berbeda.
Jika Anda menggunakan opsi usebackq , gunakan salah satu sintaks berikut:
for /f [usebackq <parsingkeywords>] {%%|%}<variable> in (<set>) do <command> [<commandlineoptions>] for /f [usebackq <parsingkeywords>] {%%|%}<variable> in ('<literalstring>') do <command> [<commandlineoptions>] for /f [usebackq <parsingkeywords>] {%%|%}<variable> in (`<command>`) do <command> [<commandlineoptions>]Tabel berikut mencantumkan kata kunci penguraian yang dapat Anda gunakan untuk penguraikan kata kunci.
Keyword Description eol= <c>Menentukan akhir karakter garis (hanya satu karakter). skip= <n>Menentukan jumlah baris yang akan dilewati di awal file. delims= <xxx>Menentukan set pemisah. Ini menggantikan kumpulan ruang dan tab pemisah default. tokens= <x,y,m-n>Menentukan token mana dari setiap baris yang akan diteruskan ke perulangan for untuk setiap iterasi. Akibatnya, nama variabel tambahan dialokasikan. m-n menentukan rentang, dari mth hingga token n th. Jika karakter terakhir dalam string tokens= adalah tanda bintang (*), variabel tambahan dialokasikan, dan menerima teks yang tersisa pada baris setelah token terakhir yang diuraikan. usebackq Menentukan untuk menjalankan string yang dikutip kembali sebagai perintah, gunakan string yang dikutip tunggal sebagai string literal, atau, untuk nama file panjang yang berisi spasi, izinkan nama file di <set>, untuk masing-masing diapit dalam tanda kutip ganda.Substitusi variabel: Tabel berikut mencantumkan sintaks opsional (untuk variabel I):
Variabel dengan pengubah Description %~I%IMemperluas yang menghapus tanda kutip di sekitarnya.%~fI%IMemperluas ke nama jalur yang sepenuhnya memenuhi syarat.%~dI%IPerluas ke huruf kandar saja.%~pI%IPerluas ke jalur saja.%~nI%IPerluas ke nama file saja.%~xI%IPerluas ke ekstensi nama file saja.%~sIMemperluas jalur untuk memuat nama pendek saja. %~aI%IMemperluas ke atribut file file.%~tI%IMemperluas ke tanggal dan waktu file.%~zI%IMemperluas ke ukuran file.%~$PATH:IMencari direktori yang tercantum dalam variabel lingkungan PATH dan memperluas %Ike nama direktori pertama yang sepenuhnya memenuhi syarat yang ditemukan. Jika nama variabel lingkungan tidak ditentukan atau file tidak ditemukan oleh pencarian, pengubah ini akan meluas ke string kosong.Tabel berikut ini mencantumkan kombinasi pengubah yang bisa Anda gunakan untuk mendapatkan hasil gabungan.
Variabel dengan pengubah gabungan Description %~dpI%IPerluas ke huruf kandar dan jalur saja.%~nxI%IPerluas ke nama file dan ekstensi saja.%~fsI%IMemperluas ke nama jalur lengkap dengan nama pendek saja.%~dp$PATH:IMencari direktori yang tercantum dalam variabel lingkungan PATH untuk %Idan memperluas ke huruf drive dan jalur yang pertama ditemukan.%~ftzaIMemperluas %Ike baris keluaran yang seperti dir.Dalam contoh di atas, Anda dapat mengganti
%Idan PATH dengan nilai valid lainnya. Nama variabel valid for mengakhiri sintaks.%~Dengan menggunakan nama variabel huruf besar seperti
%I, Anda dapat membuat kode Anda lebih mudah dibaca dan menghindari kebingungan dengan pengubah, yang tidak peka huruf besar/kecil.
Mengurai string: Anda dapat menggunakan
for /flogika penguraian pada string langsung dengan membungkus<literalstring>baik dalam: tanda kutip ganda (tanpa usebackq) atau dalam tanda kutip tunggal (dengan usebackq) --misalnya, (MyString) atau ('MyString').<literalstring>diperlakukan sebagai satu baris input dari file. Saat mengurai<literalstring>dalam tanda kutip ganda, simbol perintah seperti (\ & | > < ^) diperlakukan sebagai karakter biasa.Keluaran penguraian: Anda dapat menggunakan perintah untuk
for /fmengurai output perintah dengan menempatkan tanda kutip di antara tanda kurung<command>. Ini diperlakukan sebagai baris perintah, yang diteruskan ke anak Cmd.exe. Output diambil ke dalam memori dan diurai seolah-olah itu adalah file.
Examples
Untuk menggunakan for dalam file batch, gunakan sintaks berikut:
for {%%|%}<variable> in (<set>) do <command> [<commandlineoptions>]
Untuk menampilkan konten semua file di direktori saat ini yang memiliki ekstensi .doc atau .txt dengan menggunakan variabel yang dapat diganti %f, ketik:
for %f in (*.doc *.txt) do type %f
Dalam contoh sebelumnya, setiap file yang memiliki ekstensi .doc atau .txt di direktori saat ini diganti dengan variabel %f hingga konten setiap file ditampilkan. Untuk menggunakan perintah ini dalam file batch, ganti setiap kemunculan %f dengan %%f. Jika tidak, variabel diabaikan dan pesan kesalahan ditampilkan.
Untuk mengurai file, abaikan baris yang dikomentari, ketik:
for /f "eol=; tokens=2,3* delims=," %i in (myfile.txt) do @echo %i %j %k
Perintah ini mengurai setiap baris dalam myfile.txt. Ini mengabaikan baris yang dimulai dengan titik koma dan meneruskan token kedua dan ketiga dari setiap baris ke isi for (token dibatasi oleh koma atau spasi). Isi referensi pernyataan for%i untuk mendapatkan token kedua, %j untuk mendapatkan token ketiga, dan %k untuk mendapatkan semua token yang tersisa. Jika nama file yang Anda berikan berisi spasi, gunakan tanda kutip di sekitar teks (misalnya, Nama File). Untuk menggunakan tanda kutip, Anda harus menggunakan usebackq. Jika tidak, tanda kutip ditafsirkan sebagai menentukan string harfiah untuk diurai.
%i secara eksplisit dideklarasikan dalam pernyataan for . %j dan %k secara implisit dideklarasikan dengan menggunakan token=. Anda dapat menggunakan tokens= untuk menentukan hingga 26 token, jika tidak menyebabkan upaya untuk mendeklarasikan variabel yang lebih tinggi dari huruf z atau Z.
Untuk mengurai output perintah dengan menempatkan set di antara tanda kurung, ketik:
for /f "usebackq delims==" %i in (`set`) do @echo %i
Untuk melakukan perulangan rekursif semua file dalam direktori, termasuk subdirektori dan menggemakan jalur lengkapnya, ketika terakhir dimodifikasi, dan ukuran filenya, ketik:
for /r "C:\My Dir\" %A in (*.*) do echo %~ftzA