我有以下目录:
C:\Users\blabla
。在它的树中有多个toDelete
目录,例如:
C:\Users\blabla\toDelete
C:\Users\blabla\x1\toDelete
C:\Users\blabla\x2\toDelete
我想删除所有这些目录,不管它们的内容如何。
我试过跑步:
@echo off
DEL /Q /F "C:\Users\blabla\**\toDelete"
但是当我在 cmd.exe 中运行此脚本时,出现以下错误:
The filename, directory name, or volume label syntax is incorrect
我也试过跑步:
@echo off
set folder_name=toDelete
set folder_path=C:\Users\blabla
for /d %%i in ("%folder_path%\*") do (
if /i "%%~nxi"=="%folder_name%" (
DEL /s /q "%%i"
)
)
但是报错:
'   ' is not recognized as an internal or external command,
operable program or batch file.
'       ' is not recognized as an internal or external command,
operable program or batch file.
'   ' is not recognized as an internal or external command,
operable program or batch file.
'   ' is not recognized as an internal or external command,
operable program or batch file.
'       ' is not recognized as an internal command,
operable program or batch file.
将
DEL
更改为RD
。跑步:
@echo off
RD /Q "C:\Users\blabla\**\toDelete"
我得到了这个错误:
The system cannot find the path specified.
所以我猜这里的 glob 模式是个问题。
将
DEL
更改为RD
。跑步:
@echo off
set folder_name="toDelete"
set folder_path="C:\Users\blabla"
for /d %%i in ("%folder_path%\*") do (
if /i "%%~nxi"=="%folder_name%" (
RD /s /q "%%i"
)
)
我得到空输出,(我想成功完成),但目录没有被删除。
我有一个尝试,基于
forfiles
。它不起作用,但可能需要稍作修正。
供您参考:我和你做过同样的事情,但我是在一个
C:\Temp_Folder
目录中做的:
目录在哪里?
C:\Temp_Folder>FORFILES /S /M "ToDelete" /C "cmd /c if @isdir==TRUE echo @path"
"C:\Temp_Folder\ToDelete"
"C:\Temp_Folder\x1\ToDelete"
"C:\Temp_Folder\x2\ToDelete"
删除它们:
C:\Temp_Folder>FORFILES /S /M "ToDelete" /C "cmd /c if @isdir==TRUE RD /Q @path"
ERROR: The system cannot find the file specified.
ERROR: The system cannot find the file specified.
ERROR: The system cannot find the file specified.