ต่อ คำตอบนี้ ฉันพยายามใช้ findstr เพื่อค้นหาสตริง (ชื่อ) ภายในไฟล์บันทึก HL7 บางไฟล์ในไดเรกทอรี Findstr ได้รับ 0 ผลลัพธ์ แต่ค้นหาคืนมากมาย ฉันเล่นไปกับไวยากรณ์ของคำสั่ง findstr ของฉัน แต่ไม่สามารถเอาคืนมาได้ หมายเหตุเนื่องจากไฟล์เหล่านี้เป็นไฟล์ HL7 ชื่อจะถูกล้อมรอบด้วยสัญลักษณ์ (|, ^, ฯลฯ ):
D:\logs>findstr /l /m /c:"Test" *.*
D:\logs>
ฉันถือว่าการขาดผลลัพธ์หมายถึงผลลัพธ์ 0 รายการ ในขณะเดียวกัน:
D:\logs>find /c "Test" *.*
---------- LOG1.LOG: 0
---------- LOG2.LOG: 4
---------- LOG3.LOG: 0
---------- LOG4.LOG: 0
---------- LOG5.LOG: 8
---------- LOG6.LOG: 0
---------- LOG7.LOG: 18
ดังนั้นจึงมีผลลัพธ์มากมาย เหตุใด Findstr จึงไม่พบไฟล์ใด ๆ
คุณสามารถโพสต์ตัวอย่างของไฟล์บันทึกเพื่อให้ฉันสามารถทำซ้ำได้หรือไม่
—
djangofan
@dangangan ฉันมีปัญหาในการหาไฟล์ปลอมด้วยเหตุผลบางอย่าง การสร้างไฟล์ข้อความขนาดเล็กโดยใช้ค่าต่ำสุดที่เปลือยเปล่าของสิ่งที่ฉันคิดว่าเป็นการจำลองที่เพียงพอ (เช่น "| Test ^ Foo") สิ้นสุดการทำงานกับ findstr
—
Keen
ฉันคิดว่าด้วยอักขระพิเศษเหล่านั้นเช่น '^' คุณต้องเปิดใช้งานการขยายตัวที่ล่าช้าในสคริปต์ของคุณ สคริปต์นี้เป็นตัวอย่างที่ฉันทำซึ่งใช้ทั้ง FIND และ FINDSTR.exe: thegreenoak.blogspot.com/2012/01/... .
—
djangofan