我有一个文件夹C:\Users\user\Desktop\htmlreports\
,里面有不同的文件夹,但我只想删除192
名称中包含文本的文件夹,例如
abc192
xyz192
pqr192xyz
除此之外,还有其他文件夹。
为了仅删除带有文本的匹配文件夹192
,我尝试了以下操作 -
rd /s /q C:\Users\user\Desktop\htmlreports\*192*
但它的结果是The filename, directory name, or volume label syntax is incorrect.
请建议什么是正确的正则表达式来帮助实现这一点。
笔记这是针对 Windows 环境的
答案1
一行使用cd /D folder && for /Directory /Recursive
cd/d "%userprofile%\Desktop\htmlreports" && for /D /R %i in (*192*)do rmdir /s /q "%~i"
1.转到您的文件夹:
cd /D "C:\Users\user\Desktop\htmlreports"
- 或者,使用一个系统变量:
cd /d "%userprofile%\Desktop\htmlreports"
2.使用&&
操作员
cd /D ... && for /D /R... do ...
观察:1 除非cd /D
return 0
,接下来for /D /R
将执行的命令是……
观察:2你可以加echo\
在删除任何文件/文件夹之前测试并检查输出:
cd/d "%userprofile%\Desktop\htmlreports" && for /D /R %i in (*192*)do echo\rmdir /s /q "%~i"
答案2
尝试使用 cmd(rd
不起作用,因为它只能删除目录,使用方法del
如下):
del /s /q "C:\Users\user\Desktop\htmlreports\*192*"
尝试使用 powershell:
dir "C:\Users\user\Desktop\htmlreports" -filter *192* | rm
答案3
这电源外壳选项:
$Source = 'C:\Users\user\Desktop\htmlreports'
Get-ChildItem $Source -Directory -Recurse | Where Name -match '192' | Remove-Item -Recurse
使用别名,我们可以将其缩短为:
gci 'C:\Users\user\Desktop\htmlreports' -ad -r | ? Name -match '192' | ri -r