ลบด้วย cmd ไฟล์จาก dir ถ้ามันมีอยู่ใน dir อื่น


-1

ฉันต้องการลบไฟล์ที่มีอยู่ใน dir A ถ้ามันมีอยู่ใน dir B บางอย่างเช่นนี้

A\dir1\fileA
A\dir1\fileB
A\dir2\fileC
A\dir3\fileD


B\dir9\fileA
B\dir8\fileF
B\dir3\fileB
B\dirWhatEver\fileZ

ฉันต้องการ fileA, fileB ที่จะถูกลบจาก dir A โดยไม่ต้องลบ subdir ใด ๆ เพียงแค่ไฟล์โดยใช้ Command-line หรือ batch file จาก windows

แก้ไข: ฉันสามารถรับผลลัพธ์จาก dir / b / s จากหนึ่ง dir และเปรียบเทียบกับ dir อื่นคือผลลัพธ์และลบสิ่งที่ตรงกันจากผลลัพธ์แรก

แก้ไข: for %F in (A\"*") do @if exist "B\%F" del "%F"ไม่ทำงานฉันคิดว่ามันไม่ได้ค้นหาใน B ตำบลมันแค่มองหา B

และ Dir และ B dir มีช่องว่างในนั้น


ยินดีต้อนรับสู่ Super User เราไม่ใช่บริการเขียนสคริปต์ เราคาดว่าผู้ใช้จะบอกเราถึงสิ่งที่พวกเขาได้ลองมาแล้ว (รวมถึงสคริปต์ที่ใช้) และที่ติดขัดเพื่อให้เราสามารถช่วยแก้ไขปัญหาเฉพาะได้ คำถามที่ว่ามีเพียงขอสคริปต์กว้างเกินไปและมีแนวโน้มที่จะวางไว้หรือปิด โปรดอ่านฉันจะถามคำถามที่ดีได้อย่างไร .
DavidPostill

โปรดอ่านฉันจะถามคำถามที่ดีได้อย่างไร . มันบอกว่า (ท่ามกลางสิ่งอื่น ๆ ) " คุณค้นหาคำตอบอย่างละเอียดก่อนถามคำถามของคุณหรือไม่การแบ่งปันงานวิจัยของคุณช่วยให้ทุกคนบอกสิ่งที่คุณพบและสาเหตุที่ไม่ตรงกับความต้องการของคุณนี่แสดงว่าคุณใช้เวลา เพื่อพยายามช่วยเหลือตัวเองมันช่วยให้เราไม่ต้องทบทวนคำตอบที่ชัดเจนและเหนือสิ่งอื่นมันช่วยให้คุณได้คำตอบที่เฉพาะเจาะจงและเกี่ยวข้องมากขึ้น! "
DavidPostill

"ฉันต้องการให้ ppl บอกวิธีการทำเพื่อให้ได้ความรู้มากขึ้นว่าสิ่งต่าง ๆ ทำงานอย่างไรและอะไรคือวิธีที่ดีที่สุดในการบรรลุเป้าหมายของฉัน" คำถามที่กำลังมองหาคำแนะนำเกี่ยวกับผลิตภัณฑ์บริการหรือการเรียนรู้นั้นอยู่นอกหัวข้อ ดูในหัวข้อ
DavidPostill

คำตอบ:


0

สำหรับเป้าหมายเฉพาะของคุณคุณจะต้องค้นหาเครื่องมือเฉพาะ ฉันจำได้ว่าเห็นโปรแกรมที่เรียกว่า YAFF (Yet Another File Finder) ซึ่งมีชื่อนั้นเพราะมีรายการอื่นอยู่ที่นั่น (นี่คือคำตอบที่สมบูรณ์แบบในหัวข้อหลักของฉันส่วนที่เหลือของคำตอบของฉันคือการพูดถึงทางเลือกอื่น ๆ )

หากคุณไม่ชอบ YAFF ให้ค้นหา "file finder" หรือ "deduplication" / "deduplicate" หรือ "find ซ้ำกัน" และฉันคิดว่าคุณจะพบผลลัพธ์มากมาย (มันเป็นเรื่องสนุกสำหรับโปรแกรมเมอร์ที่จะสร้างขึ้นหลังจากที่พวกเขาเริ่มเรียนรู้การเรียกซ้ำและการจัดการไฟล์ดังนั้นมีไม่กี่คนที่ได้เขียนเครื่องมือสำหรับสิ่งนี้) การทำซ้ำก็เป็นคุณสมบัติที่ผู้คนจำนวนมากพูดถึง คุณสมบัติของระบบไฟล์และซอฟต์แวร์สำรองข้อมูลดังนั้นคุณอาจได้รับการพูดคุยเล็กน้อยเกี่ยวกับหัวข้อเหล่านั้นที่คุณไม่ได้ถาม แต่ยังค้นหาสิ่งที่คุณกำลังพยายามทำอยู่

ฉันได้ทำสิ่งที่คล้ายกันมากกับสิ่งนี้ซึ่งฉันสามารถทำบางสิ่งกับไฟล์ (รวมถึงการลบหรือใช้คำสั่ง "echo" และเขียนไปยังไฟล์ข้อความหรือสิ่งที่ฉันต้องการ) ไปที่ A \ dir1 \ fileA ถ้า B \ มี dir1 \ fileA อยู่ ในการทำเช่นนั้นฉันใช้พรอมต์คำสั่งของ JP Software (โดยทั่วไปคือ 4DOS ย้อนกลับไปในวันนี้ แต่วันที่เทียบเท่าสมัยใหม่จะเป็น TCC / LE) โดยมีตัวแปรภายในเพื่ออ้างถึงชื่อไฟล์แบบเต็ม (% @ เต็ม) และสตริงย่อย / ฯลฯ ฉันไม่เคยเก็บซอร์สโค้ดเพราะฉันทำได้ดีในการใช้เวลาสามนาทีในการสร้างใหม่เมื่อใดก็ตามที่ฉันต้องการ สิ่งที่ต้องการ: global / i สำหรับ %% X ใน ( . ) หากมี DIRB \% @ substr [บางสิ่งที่% @ เต็ม [.]] echo DIRB \% @ substr [บางสิ่งที่% @ เต็ม [.]] ทำอะไรก็ได้ (หรือ @instr) ... "บางสิ่ง" จะต้องได้รับการปรับแต่งตามระยะเวลาที่ใช้เส้นทางร่วมกัน

การสนับสนุนไดเรกทอรีย่อยที่อาจแตกต่างกันอาจเป็นไปได้โดยใช้ "สำหรับ" เพื่อสืบสู่ไดเรกทอรีย่อยใด ๆ หากไดเรกทอรีย่อยมีชื่อแตกต่างกันคุณอาจต้องใช้ GLOBAL / i ซึ่งเป็นคำสั่งภายในของผลิตภัณฑ์ JP Software และไม่มีคำสั่งเทียบเท่าในตัว CMD ครั้งล่าสุดที่ฉันตรวจสอบ (หลายระบบปฏิบัติการที่ผ่านมา) ฉันแน่ใจว่ามีบางสิ่งที่สามารถสร้างขึ้นมาได้ (อาจจะ: ทั่วโลกถ้ามีอยู่ให้เขียนไฟล์ temp ในชื่อที่รู้จักแล้วถ้าไฟล์ temp นั้นมีอยู่ให้ลบ)

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