2012-12-07 171 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 
相关问题