วิธีลบไฟล์จากโฟลเดอร์โดยใช้รายชื่อไฟล์ใน windows


23

ฉันมีโฟลเดอร์ที่มีไฟล์ 2K + อยู่ในนั้นฉันจำเป็นต้องลบประมาณ 200 ฉันมีไฟล์ txt ที่มีชื่อไฟล์ทั้งหมดที่ฉันต้องการลบออกจากรายการในรายการฉันจะลบไฟล์เฉพาะจากโฟลเดอร์โดยใช้รายการได้อย่างไร (ระบบปฏิบัติการคือ windows 7)

คำตอบ:


18

วิธีง่ายๆคือคัดลอกไฟล์ txt ไปยังไฟล์ที่เรียกว่าmydel.batในไดเรกทอรีของไฟล์ที่จะลบ การใช้โปรแกรมแก้ไขเช่น Microsoft Word แก้ไขไฟล์นี้ ทำการแทนที่แบบโกลบอลบน Newline ตามปกติ^pใน Word space/f^pdelspaceแทนที่ด้วย สิ่งนี้จะเปลี่ยนไป

File1.bin
File20.bin
File21.bin

ถึง (ด้วย/fสำหรับ "บังคับลบไฟล์แบบอ่านอย่างเดียว"):

File1.bin /f
del File20.bin /f
del File21.bin /f
del

แก้ไขบรรทัดกำปั้นเพื่อเพิ่มdelช่องว่างและลบบรรทัดสุดท้าย

เรียกใช้ชุดคำสั่ง


นอกเหนือจากสวิตช์ / Y ซึ่งเห็นได้ชัดว่าไม่ได้ทำงานในคำสั่ง win7 del สิ่งนี้ทำงานได้ค่อนข้างดี .. ขอบคุณ
Avishking

2
ที่อาจควรจะเป็น/fสำหรับ "บังคับไฟล์อ่านอย่างเดียวลบ" /yแทน
afrazier

แก้ไข Afrazier ฉันถูกผสมขึ้น / Y ซึ่งทำงานร่วมกับ XCOPY และหนึ่งหรือสองโปรแกรม DOS อื่น ๆ เพื่อ 'ปราบปรามกระตุ้นให้ดำเนินการยืนยัน'
kingchris

ในบรรณาธิการที่รู้วิธีค้นหา / แทนที่ด้วย regex เช่น Notepad ++ คุณจะต้องแทนที่ "^" ด้วย "del" และ "$" ด้วย "/ f" โดยที่ ^ แทนจุดเริ่มต้นของแต่ละแถวและ $ - ตอนจบ.
Dan Mirescu

38

พิมพ์สิ่งนี้บนบรรทัดคำสั่งโดยแทนที่ไฟล์ของคุณสำหรับfiles_to_delete.txt:

for /f %i in (files_to_delete.txt) do del %i

รุ่นที่เหมาะสำหรับการรวมไว้ใน.cmdไฟล์ (สอง %%) และสามารถจัดการช่องว่างในชื่อไฟล์:

for /f "delims=" %%f in (files_to_delete.txt) do del "%%f"

1
นี่เป็นการลบรายชื่อไฟล์แทนไฟล์เอง ... ฉันต้องสร้างรายการใหม่อีกครั้ง: |
Avishking

4
ขอโทษที่ลึกที่สุดของฉัน ฉันลืม/fธง
วิลเลียมแจ็คสัน

นั่นมันสวยมากฉันไม่รู้ว่าบรรทัดคำสั่งรองรับลูปแบบนั้นหรือเปล่า สนใจเขียนโพสต์บล็อกสำหรับบล็อก SU เกี่ยวกับสิ่งนี้และความซับซ้อนอื่น ๆ ของบรรทัดคำสั่งหรือไม่
Ivo Flipse

1
@Ivo: คุณอาจต้องการดูcomputerhope.com/batch.htmหรือsuperuser.com/questions/tagged/batchเพื่อเรียนรู้เพิ่มเติม เช่น Unix สิ่งที่สามารถทำได้ในสคริปต์ (ไฟล์แบทช์) สามารถทำได้โดยตรงจากบรรทัดคำสั่ง
BlueRaja - Danny Pflughoeft

ฉันสร้างไฟล์ bat และคัดลอกตัวอย่างที่ 2: ผลลัพธ์: files_to_delete.txt ยังคงถูกลบ (แม้จะมีแฟ
ล็

18

ใช้ PowerShell:

Get-Content c:\path\to\list.txt | Remove-Item

1
ว้าวนั่นเป็นวิธีที่อ่านง่ายกว่าชุด
TheLQ

สำหรับผู้อ่านในอนาคต ... ฉันต้องเปลี่ยนโอเปอเรเตอร์ไพพ์เป็น a >เพื่อทำงานนี้ คือGet-Content c:\path\to\list.txt > Remove-Item... ผมมีเส้นทาง UNC list.txtเต็มรูปแบบในของฉัน หวังว่านี่จะช่วยได้
NateJ

@NateJ ฉันลองใช้>และมันเพิ่งสร้างไฟล์ให้ฉันแทนที่จะลบสิ่งต่างๆ
ไบรอัน J

@BrianJ อืมฉันจะต้องกลับมาตรวจสอบในสิ่งที่ฉันทำ .. จับได้ดี
NateJ

1

ฉันคิดว่ามันสามารถทำได้ด้วย powershell

รู้Perlฉันมักจะใช้มันสำหรับสิ่งนี้

perl -l -n -e "unlink" filenames.txt

1

วิธีแรกทำงานหลังจากการเปลี่ยนแปลงบางอย่าง:

  1. เปิด Notepad
  2. คัดลอกชื่อไฟล์ทั้งหมดที่มีนามสกุลซึ่งจะต้องถูกลบหลังจากเพิ่มdelที่จุดเริ่มต้นเช่น

    del File1.bin
    del File20.bin
    del File21.bin
    
  3. บันทึกไฟล์เช่นเดียวกับxyz.batในโฟลเดอร์เดียวกัน

  4. เรียกใช้ไฟล์

2
... ไฟล์ข้อความในคำถามนั้นมีชื่อไฟล์ประมาณ 200 ชื่อ ทำไมเพิ่มdelด้วยตนเองเหมือนที่คุณกำลังเสนอในขณะที่โซลูชันถูกโพสต์แล้วโดยอัตโนมัติ นอกเหนือจาก: เครื่องมือแก้ไขที่มีสติจะสนับสนุนการค้นหาและแทนที่รวมถึงการสิ้นสุดบรรทัด (หรือการเริ่มบรรทัดโดยใช้นิพจน์ทั่วไป), แมโครหรือสำหรับการแก้ไขโหมดบล็อกหรือคอลัมน์ (มักเริ่มต้นด้วยการกด Option หรือ Alt ค้างไว้ บล็อกหลังจากที่หนึ่งสามารถพิมพ์หลายบรรทัดในครั้งเดียว)
Arjan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.