2017-02-06 45 views
-1

我想創建一個批處理文件,它將從某個(服務器)路徑中刪除某個文件。以下代碼將刪除123.pdf,但如果我沒有特別提及文件名,它會詢問我是否要刪除該文件夾的所有內容。批處理:僅刪除指定文件的命令

的路徑和文件名是由汽車另一個腳本有時結果插入將是空的,這意味着沒有任何文件的名稱將被插入。 我將它設置爲不會提示是/否許可,這很危險,因爲如果沒有給出文件名,它將刪除整個文件夾的內容。

我只希望它只刪除一個確切的命名文件,當/如果在命令行中只包含路徑,沒有文件名 - 跳過不刪除任何內容。

例:

del "\\tbiscan\SCAN\Dosare de executare scanate\Curtea de Apel Bacau\BACAU\280555A\123.pdf" 

請幫

+1

您如何向我們展示所有涉及的代碼。 – Squashman

回答

1

您可以

2>nul (<"%targetFile%" break) && del "%targetFile%" 

Asumming的%targetFile%變量嘗試包含參考文件(或文件夾)中刪除此代碼:

  • 嘗試使用輸入重定向操作符打開文件以進行讀取(break命令對文件不做任何操作,但我們需要一個不會引發錯誤級別的命令,但不必使用break,如call;或可以使用type nul)。
    • 如果文件可以打開就不會出現任何錯誤,條件運算符&&(如果以前沒有失敗,則執行下一個命令)將執行del命令。
    • 如果文件無法打開(不可讀,它是一個文件夾,它不存在),無法執行重定向,並生成錯誤(由2>nul隱藏)和&&條件運算符之後的命令沒有執行。
+0

我覺得這可以工作(我會在接下來的幾分鐘內測試它),但是這不會減慢這個過程嗎? – MisterA

+0

@MisterA,它不應該。如果存在,文件不會被讀取,只能打開讀取並再次關閉。 –