ลบไฟล์ถ้าพบ


2

ฉันมีชุดสคริปต์ที่มีบรรทัดเช่นนี้:

del "%TARGET_DIR%\packages.config"

แต่ถ้าpackages.configไม่มีอยู่ในไดเรกทอรีเป้าหมายมันจะสร้างข้อผิดพลาด

ไม่สามารถหาได้ \\...\packages.config

มีสวิตช์บรรทัดคำสั่งdelที่จะป้องกันการเพิ่มข้อผิดพลาดไม่พบไฟล์เป้าหมายหรือไม่ ฉันเปิดให้ใช้if existsถ้าฉันต้อง แต่ฉันมีคำสั่งที่คล้ายกันจำนวนมากและฉันต้องการหลีกเลี่ยงการทำเช่นนั้นสำหรับไฟล์ทุกไฟล์ที่ฉันอาจต้องการลบ


FYI DEL /Qไม่อนุญาตให้ล้มเหลวอย่างเงียบ ๆ มันยังคงบ่น คุณจะต้องทดสอบล่วงหน้า ... ขอโทษ
Lynn Crumbling

คำตอบ:


3

คุณสามารถใช้งานการIF EXISTS/DELโทรของคุณเพื่อให้รหัสไม่ซ้ำกันตัน สำหรับการทำหน้าที่ลูกอ๊อดในดอสเห็นนี้

พวกเขาใช้คำสั่ง GOTO เพื่อใช้งานฟังก์ชั่น แต่มันควรจะทำงานเหมือนกัน

จากหน้านั้น:

ฟังก์ชั่นตัวอย่าง:

:myDosFunc    - here starts my function identified by it`s label
echo. here the myDosFunc function is executing a group of commands
echo. it could do a lot of things
GOTO:EOF

การเรียกใช้ฟังก์ชัน:

call:myDosFunc

สำหรับการใช้งานในกรณีที่มีอยู่เห็นนี้


2

คุณสามารถเปลี่ยนเส้นทางstderrไปเป็นโมฆะ:

del "%TARGET_DIR%\packages.config" 2> nul

อ้าง


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