ไม่รวมไฟล์ของส่วนขยายเฉพาะโดยใช้คำสั่ง DIR บนบรรทัดคำสั่งของ windows


20

หากฉันต้องการดูไฟล์เช่นของส่วนขยายเฉพาะโดยใช้รายการ dir เท่านั้นฉันสามารถทำได้โดยใช้คำสั่ง:

DIR *.txt 

และมันจะแสดงไฟล์ทั้งหมดที่มี.txtนามสกุล
ตอนนี้ฉันต้องการทราบว่ามีคำสั่งใดที่ฉันสามารถยกเว้นส่วนขยายบางอย่าง?
ตัวอย่างเช่นฉันไม่ต้องการดูไฟล์ที่มีนามสกุล.exeฉันจะทำอย่างไร

คำตอบ:


27

DIR จะไม่อนุญาตให้สิ่งที่คุณพยายามทำ อย่างไรก็ตาม DIR พร้อมด้วย FINDSTR สามารถแก้ปัญหานี้ได้

เช่นข้อมูลต่อไปนี้จะละเว้นไฟล์. txt ทั้งหมดในรายชื่อ DIR

dir | findstr /v /i "\.txt$" 

2
คุณอาจต้องการใช้dir /b | findstr /v /i "\.txt$"เพราะdirจะเอาท์พุทส่วนหัวรวมถึงไฟล์และโฟลเดอร์ที่ไม่ถูกต้องที่เป็นไปได้ที่จะสิ้นสุด
phuclv

ทำไมfindstrมากกว่าเพียงfind?
Sopalajo de Arrierez

เพราะค้นหาการค้นหาข้อความและ findstr รองรับ regexes ฉันแนะนำ Findstr หากคุณเพียงแค่ต้องการค้นหาสตริงที่แน่นอนการค้นหาก็สามารถใช้ได้เช่นกัน
IUnknown

8
dir /B | find /V ".txt"

นี่จะแสดงรายการไฟล์ทั้งหมดและค้นหาจะกรองสิ่งที่ไม่มี ".txt" มันไกลจากที่สมบูรณ์แบบ แต่อาจจะพอ :)


ฉันไม่ต้องการ/Bพูด แต่ฉันชอบคำตอบนี้ตราบใดที่ฉันไม่เห็นความต้องการ 'findstr' (คำตอบที่แท้จริง)
Sopalajo de Arrierez

3

ขึ้นอยู่กับล่ามคำสั่งของคุณ

ไมโครซอฟท์cmdไม่ได้มีสิ่งอำนวยความสะดวกเช่นในขณะที่คุณสามารถดูจากคำตอบอื่น ๆ dirที่หนึ่งที่มีการโพสต์การประมวลผลการส่งออกของ TCC / LE ของ JP Softwareทำเช่นนั้น มันถูกเรียกว่าช่วงการยกเว้นไฟล์และมีการใช้เช่นนี้สำหรับตัวอย่างในคำถามของคุณ:

dir /ه!*.exe] *


ขอบคุณ แต่ฉันคิดว่าเครื่องมือนี้ทำงานเป็นโปรแกรมแบบสแตนด์อโลน ฉันกำลังสร้างแอปพลิเคชันของฉันที่ฉันเรียกใช้กระบวนการภายนอกโดยใช้ windows shell หรือ bash ใน ubuntu ดังนั้นเครื่องมือนี้จะไม่พอดีหากพวกเขามีสวิตช์บรรทัด cmd แล้วมันจะมีประโยชน์
Johnydep

1
ก่อนหน้าอย่างชัดเจนเป็นสวิตช์บรรทัดคำสั่ง อ่านเอกสารเชื่อมโยงหลายมิติ แน่นอนว่าในภาษาการเขียนโปรแกรมส่วนใหญ่มันค่อนข้างงี่เง่าที่จะใช้ความยาวของเชลล์ในการรับเนื้อหาของไดเรกทอรีและคุณกำลังใช้งาน StackExchange ที่ไม่ถูกต้องสำหรับการเขียนแอปพลิเคชัน
JdeBP

ขอบคุณสำหรับคำอธิบายที่เป็นจริง แต่มันเป็นวิธีแก้ปัญหาสำหรับการสแกนไดเรกทอรีเหล่านั้นซึ่งต้องใช้ระดับความสูงและฉันไม่ต้องการที่จะทำให้รหัสของฉันเรียก UAC พรอมต์เมื่อฉันได้รับผลลัพธ์จากพรอมต์คำสั่งโดยไม่ต้องใช้สิทธิ์สูงขึ้น
Johnydep
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.