Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何使用批处理文件删除2个特定文件夹中的所有内容?_Batch File - Fatal编程技术网

Batch file 如何使用批处理文件删除2个特定文件夹中的所有内容?

Batch file 如何使用批处理文件删除2个特定文件夹中的所有内容?,batch-file,Batch File,我最近在电脑上处理自动化任务,我想制作一个批处理文件,自动删除2个特定文件夹中的内容。 我尝试使用此批处理文件删除2个文件夹的内容: forfiles -p "C:Test1" -s -m *.* /C "cmd /c del @path" forfiles -p "C:Test2" -s -m *.* /C "cmd /c del @path" 这似乎是可行的,但它只删除了文件,而不是文件夹,我想删除其中的所有内

我最近在电脑上处理自动化任务,我想制作一个批处理文件,自动删除2个特定文件夹中的内容。 我尝试使用此批处理文件删除2个文件夹的内容:

forfiles -p "C:Test1" -s -m *.* /C "cmd /c del @path"
forfiles -p "C:Test2" -s -m *.* /C "cmd /c del @path"
这似乎是可行的,但它只删除了文件,而不是文件夹,我想删除其中的所有内容。我尝试了另一种选择,但结果还是一样:

del /s /q "C:Test1\*.*"
del /s /q "C:Test2\*.*"

有人能给我解释一下如何删除文件夹而不仅仅是文件吗?

要删除文件夹,必须使用rd命令

forfiles -p "C:\Test2" -s -m *.* /C "cmd /c IF @isdir == TRUE rd /S /Q @path"
以下是我的建议:

@(对于%%G In(“C:\Test1”“C:\Test2”)执行@PushD“%%~G”和&(RD/S/Q&PopD))2>NUL

它仅使用
RD
命令,并通过请求安静地删除当前目录及其所有子目录来执行此操作。如果目录是当前目录,则无法删除该目录,因此代码将使用
PushD
,使该目录成为当前目录,如果成功,
&&
,则使用相对当前目录
,运行
RD
命令,然后返回到以前的当前目录
PopD
RD
命令虽然不能删除当前目录,但仍然可以删除其中的所有内容,并且确实会删除,尽管它确实会生成错误消息。我已通过将StdErr、
2>
重定向到
NUL
设备来抑制错误消息。

使用
DEL
命令删除文件,
RD
命令删除目录。感谢您的回答,这非常有效!