如何通过批处理读取文件来使用通配符删除目录?

如何通过批处理读取文件来使用通配符删除目录?

批处理文件

for /f "delims=" %%f in (7profiledeletelist.txt) do rd /s /q "%%f"
PAUSE
exit

7个人资料删除列表.txt

C:\Users\1*
C:\Users\2*
C:\Users\3*
C:\Users\4*
C:\Users\5*
C:\Users\6*
C:\Users\7*
C:\Users\8*
C:\Users\9*
C:\Users\M*
C:\Users\T*

阅读后7个人资料删除列表.txt文件,该bat文件无法删除任何东西。

如果我删除*并写入目录的确切名称,它就可以正常工作。我想删除以M、开头的所有文件夹T1直到9用户目录中。

批处理脚本需要如何7profiledeletelist.txt更改才能使其正常工作?批处理脚本中是否有错误代码?

答案1

根据此问答rmdir不接受通配符。但是,发出以下命令:

for /D %f in (1*) do rmdir %f /s /q

删除所有以 开头的文件夹1

根据此问答可以使用批处理逐行读取文件。

rmdir_regex.bat

@echo off

for /f "tokens=*" %%a in (7profiledeletelist.txt) do (
  for /D %%f in (%%a) do rmdir %%f /s /q
)

相关内容