ฉันจะซ่อนนามสกุลไฟล์ใน command prompt / dir output ได้อย่างไร


9

สิ่งที่ฉันต้องการทำนั้นง่ายมาก:
ฉันมีโฟลเดอร์ใน Windows ที่มีรายการประเภทต่าง ๆ รวมถึงไฟล์ PDF, ไฟล์ TXT และไดเรกทอรีย่อย ฉันกำลังเขียนไฟล์. bat หนึ่งบรรทัดเพื่อดึงเฉพาะชื่อไฟล์ PDF ลงในไฟล์ข้อความใหม่

จนถึงตอนนี้เป็นสิ่งที่ฉันมีใน. bat:

dir *.pdf /b > PDF_LIST.txt

สิ่งนี้จะให้ผลลัพธ์ต่อไปนี้ในไฟล์ PDF_LIST.txt:

A.pdf
B.pdf
C.pdf

ฉันต้องการวางส่วน ".pdf" ของแต่ละบรรทัดในไฟล์ txt เนื่องจากเห็นได้ชัดแล้วว่าแต่ละไฟล์อยู่ในรูปแบบ PDF โดยใช้พารามิเตอร์ * .pdf ในคำสั่ง dir ของฉัน

นี่จะทำให้ง่ายขึ้นสำหรับฉันที่จะคัดลอก / วางชื่อไฟล์ทั้งหมดโดยตรงจากไฟล์ข้อความลงในเอกสารคำสำหรับการส่งที่ฉันส่งให้ลูกค้าของฉัน หากคุณสามารถแนะนำวิธีที่ดีกว่าหรือง่ายกว่าในการรับรายการไฟล์โดยไม่ต้องใช้แบตช์ไฟล์ที่จะเป็นประโยชน์เช่นกัน

คำตอบ:


18

ในสคริปต์ของคุณ:

for %%i in (*.pdf) do @echo %%~ni >> PDF_LIST.txt

Whoa ที่พัดใจของฉัน (ไม่เคยทำงานกับบรรทัดคำสั่งจริงๆ) ตกลงฉันจะให้มันยิง ขอบคุณ!
NoCatharsis

1
ดูhelp forว่ามีการกระตุ้นกะโหลกเพิ่มเติม
หยุดชั่วคราวจนกว่าจะมีการแจ้งให้ทราบต่อไป

ฉันแก้ไข (สิ่งที่ฉันคิดว่าเป็น) พิมพ์ผิดของคุณในรหัสและเรียกใช้คำสั่งนี้: สำหรับ %% i ใน (* .pdf) ทำ @echo %% ~ ni >> PDF_LIST.txt ฉันได้รับการตอบสนอง "%% i ไม่คาดคิดในเวลานี้ "และไม่มีเอาต์พุตอื่น
NoCatharsis

2
@NoCatharsis: ขออภัยเกี่ยวกับการพิมพ์ผิด %ที่บรรทัดคำสั่งเพียงแค่ใช้เพียงครั้งเดียว ใช้%%ในแบทช์ไฟล์ของคุณ
หยุดชั่วคราวจนกว่าจะมีการแจ้งให้ทราบต่อไป

เจ๋งทำงานเหมือนมีเสน่ห์ - ขอบคุณมากสำหรับความช่วยเหลืออย่างรวดเร็ว
NoCatharsis

0

โปรแกรมแก้ไขข้อความส่วนใหญ่ (รวมถึง Notepad) มีการค้นหาและแทนที่ เพียงใช้เพื่อค้นหา ".pdf" ทั้งหมดและแทนที่ด้วย "" เสร็จแล้ว :)

คุณสามารถตั้งค่านี้เป็นมาโครในคำได้เช่นกัน


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