2012-12-07 175 views
71

我有一個批處理腳本如下。批處理腳本刪除文件

D: 
del "D:\TEST\TEST1\Archive\*.TSV" 
del "D:\TEST\TEST1\Archive\*.TXT" 
del "D:\TEST\TEST2\Archive\*.TSV" 
del "D:\TEST\TEST2\Archive\*.TXT" 
del "D:\TEST\TEST 100%\Archive\*.TSV" 
del "D:\TEST\TEST 100%\Archive\*.TXT" 

上面的代碼刪除所有從所有文件夾名爲「.txt」和「.tsv格式」的文件,除了從文件夾TEST 100%。從TEST 100%刪除文件我得到的錯誤爲The Path could not be found。我猜文件夾名稱中的%符號會產生問題。 任何人都可以指導我解決問題,並從文件夾TEST 100%刪除文件?

+0

爲什麼你在第一行有報價?另外,爲什麼當批處理文件已經更改爲第一行的驅動器時,您是指驅動器?我試圖複製你的問題,一切工作。您是否確認檔案在測試100%中存在? – RonaldBarzell

回答

85

你需要與其他逃避%...

del "D:\TEST\TEST 100%%\Archive*.TXT" 
+0

我不能說OP,但在我的系統中找到含%的路徑並沒有問題,使用%%轉義導致系統無法找到它。 – RonaldBarzell

+0

@ user1161318 - 我在Windows 7上測試過它。沒有轉義,在批處理文件中,導致「系統找不到指定的路徑」。當我發佈它的作品。 –

+0

好的,在XP上我得到了相反的結果。它使用%找到了正確的路徑,但未能用%%找到它。 – RonaldBarzell

5

有一個在一批處事的多種方式,因此,如果用雙百分號%%不爲你工作逃避,那麼你可以嘗試是這樣的:

set olddir=%CD% 
cd /d "path of folder" 
del "file name/ or *.txt etc..." 
cd /d "%olddir%" 

這是如何工作的:

set olddir=%CD%設置變量"olddir"或任何其他變量姓名Y ou喜歡從您的批處理文件啓動的目錄 。

cd /d "path of folder"更改批次將查看的當前目錄。請保留 報價並更改您要達到的任何路徑的文件夾路徑。

del "file name/ or *.txt etc..."將刪除批處理當前目錄中的文件,只是不要在文件名之前添加目錄路徑,只需要具有完整的文件名或刪除多個具有相同擴展名的文件*.txt或者你需要的任何擴展。

cd /d "%olddir%"將變量保存在您的舊路徑中,並返回到您開始批處理的目錄,如果您不希望批處理返回到其以前的目錄路徑,則不重要,並且像變量前面指出的那樣名稱可以通過更改set olddir=%CD% line更改爲任何你想要的。

+0

雙擊應該工作,因爲不是一招,是做的方式... – erm3nda

-7

在批處理代碼中,您的路徑不應包含任何空格,因此請將您的文件夾名稱從「TEST 100%」更改爲「TEST_100%」,您的新代碼將爲 del「D:\ TEST \ TEST_100%\ Archive * .TXT」

希望這將解決您的問題

+4

從來沒有聽說過。這是新的嗎? - 關閉。它可以像空白一樣使用空格,只要您將其設置爲引號即可。 – Blacktempel

8

比方說你你的軟件保存到您的桌面。
如果你想刪除一個像卸載程序的整個文件夾,你可以使用它。

cd C:\Users\User\Detsktop\ 
rd /s /q SOFTWARE 

這將刪除整個文件夾名爲軟件和它的所有文件和子文件夾的

確保您刪除正確的文件夾會導致這個沒有一個是/否選項

2

考慮您需要刪除的文件的擴展名爲txt,位於D:\My Folder的位置,那麼您可以在bat文件中使用下面的代碼。

cd "D:\My Folder" 
DEL *.txt 
相關問題