/v membalikkan pencarian (jadi ketika kita mencari apa-apa kita menemukan semua baris)
/c menghitung kecocokan
"" tidak ada yang cocok
*.* cari semua file
> result.txt redirect output
Keterbatasan
mengasumsikan batas akhir jendela normal garis \r\n
walaupun FIND dapat digunakan untuk memindai file besar, itu tidak akan mendeteksi string apa pun yang diposisikan lebih dari 1070 karakter di sepanjang satu baris (tanpa pengembalian carriage \r) Ini membuatnya terbatas digunakan dalam mencari jenis file biner atau XML.
Untuk menghapus baris tambahan -dan kosong kita dapat membungkus perintah di atas dalam sebuah forkonstruksi sebagai berikut:
for /f "usebackq tokens=2-3" %a in (`find /v /c "" *.*`) do echo %a %b >> result.txt
+1 Saya tidak tahu tentang find / c / v "" Saya selalu selesai mencari / c / v "sdfsdf" Menarik bahwa find / c / v "" berfungsi .. Saya melihatnya berfungsi karena find tidak cocok string kosong bahkan hingga baris kosong. Saya melihat findstr tidak cocok dengan "" meskipun tentu saja dapat mencocokkan garis kosong dengan regex dari $ $
barlop
Ini berhasil untuk saya. Tapi saya mendapatkan di bawah ini sebagai output: ---------- PFIZ_EXT_SEAGRCLMHISD_20141013_1.TXT: 165428 ---------- PFIZ_EXT_SEBMODCHKIND_20141013_1.TXT: 0 ---------- PFIZ_EXT_SECNSLDND_20141013_1 .TXT: 13 ---------- PFIZ_EXT_SECNSMRD_20141013_1.TXT: 15788 ---------- PFIZ_EXT_SECNSNTD_20141013_1.TXT: 291825 ---------- PFIZ_EXT_SECPGNPRD_20141013_1.TX --------- PFIZ_EXT_SEFFLD_20141013_1.TXT: 219599 ---------- PFIZ_EXT_SESVYRSPD_20141013_1.TXT: 123284 Dapatkah Anda membantu saya menghapus baris baru di awal dan '-'
Siddharth
0
Terima kasih banyak atas tanggapan Anda. Menambahkan ke persyaratan asli saya, skenario adalah bahwa folder dibuat (dalam format YYYYMMDD) setiap hari di lokasi tertentu. Folder ini berisi beberapa file dengan / tanpa catatan yang ada di dalamnya.
Karena ini setiap hari, saya akan menggunakan file batch ini setiap hari. Dan setiap kali saya menjalankan file batch ini pada hari tertentu, maka ia harus memeriksa folder yang akan dibuat pada hari tertentu dan kemudian memberikan file output yang berisi nama file dan jumlah rekaman
Apakah ada cara untuk mendapatkan persyaratan ini?
Anda sekarang memiliki jawaban untuk pertanyaan Anda. Silakan ajukan pertanyaan baru dengan persyaratan baru dengan mengklik tombol Ajukan Pertanyaan. Sertakan tautan ke pertanyaan ini jika itu membantu menyediakan konteks.
Jawaban:
Referensi FIND Cari string teks dalam file & tampilkan semua baris di mana ditemukan.
Bagaimana itu bekerja
/v
membalikkan pencarian (jadi ketika kita mencari apa-apa kita menemukan semua baris)/c
menghitung kecocokan""
tidak ada yang cocok*.*
cari semua file> result.txt
redirect outputKeterbatasan
\r\n
\r
) Ini membuatnya terbatas digunakan dalam mencari jenis file biner atau XML.Untuk menghapus baris tambahan -dan kosong kita dapat membungkus perintah di atas dalam sebuah
for
konstruksi sebagai berikut:sumber
Terima kasih banyak atas tanggapan Anda. Menambahkan ke persyaratan asli saya, skenario adalah bahwa folder dibuat (dalam format YYYYMMDD) setiap hari di lokasi tertentu. Folder ini berisi beberapa file dengan / tanpa catatan yang ada di dalamnya.
Karena ini setiap hari, saya akan menggunakan file batch ini setiap hari. Dan setiap kali saya menjalankan file batch ini pada hari tertentu, maka ia harus memeriksa folder yang akan dibuat pada hari tertentu dan kemudian memberikan file output yang berisi nama file dan jumlah rekaman
Apakah ada cara untuk mendapatkan persyaratan ini?
sumber
Untuk hanya daftar nama file:
sumber