我想创建一个批处理文件,该文件将从CD运行并删除所有名为" Caesar III"在系统的其余部分。我知道我可以使用dir命令查找文件夹。我使用forfiles命令在一个驱动器中删除这些文件夹。有没有办法告诉forfiles搜索和删除整个系统,除了CD-ROM驱动器?
答案 0 :(得分:1)
假设我有如下文件夹结构。
C:\Test
|__ folder1
| |__ folder11
| |__ temp
|__ folder2
| |__ temp
|__ folder3
|__ temp
我可以使用命令找到名为'temp'的所有文件夹。
for /d /r "C:\Test" %d in (temp) do @if exist "%d" echo "%d"
输出将是。
"C:\Test\folder1\folder11\temp"
"C:\Test\folder2\temp"
"C:\Test\folder3\temp"
如果我想删除这些文件夹,请使用命令。
for /d /r "C:\Test" %d in (temp) do @if exist "%d" rd /s/q "%d"
如果要将其保存到bat文件,可以执行此操作
for /d /r "C:\Test" %%d in (temp) do @if exist "%%d" rd /s/q "%%d"
答案 1 :(得分:0)
您可以使用forfiles
命令(尽管它的名称,它也可以找到/处理目录):
首先测试它会做你认为应该做的事情(因此" echo @ path"部分);使用/P ...
指定起始目录:
forfiles /P C:\ /M "Caesar III" /S /C "cmd /c if @isdir==TRUE echo @path"
它只列出找到的目录。
然后,当确定它按预期工作时,将echo
替换为rmdir /s /q
:
forfiles /P C:\ /M "Caesar III" /S /C "cmd /c if @isdir==TRUE rmdir /s /q @path"
(请注意,@path
会扩展为带引号的字符串,因此您不需要额外的引号来说明路径中的空格。)
有关更多信息和帮助,请使用forfiles /?
。