亲爱的StackOverflow社区,
请您使用以下方案的批代码告诉我:
查找名为" Autoname"的文件夹如果他们存在,并删除他们的 主机文件夹(X),文件夹本身(自动命名)和内部的所有文件。
(X)文件夹可以有任何名称
路径为:%userprofile%\ AppData \ Local \ -X- \" Autoname" \ 文件夹&文件。
我找到了similar post和similar post,但这不是我需要的。
谢谢大家的时间,我特别感谢@Compo的答案,它被认为是最好的!
答案 0 :(得分:0)
for /f "delims=" %i in ('dir /b /s /ad u:\sourcedir\*') do @if /i "%~nxi"=="e9" ECHO rd /s/q "%~dpi."
这应该删除u:\sourcedir
目录的任何子目录的父目录,该目录本身包含子目录e9
。目录名称并不神奇 - 正是我用于测试的目的。
删除父目录将删除已删除目录下的所有文件和目录。
此代码将简单地报告它打算做什么。 验证后,您需要删除echo
关键字才能执行删除操作。请注意,如果此脚本行(可能是直接从提示中调用),则可能会在尝试删除已删除的目录下存在的e9
目录时生成错误消息。将2>nul
附加到该行(包括前导空格)应禁止报告此类错误。
答案 1 :(得分:0)
现在您的问题表明const T&
目录存在于临时目录中的任何级别。
以下示例应该是所有要求的:
从批处理文件:
Autoname
从命令提示符:
@Echo Off
For /F "Delims=" %%A In ('"Dir/B/S/AD-L "%Temp%"|FindStr/IEC:"\\AutoName""'
) Do If Exist "%%~dpA" RD/S/Q "%%~dpA"
答案 2 :(得分:0)
如果您想继续使用PowerShell,可能会有以下情况。如果您确信将删除正确的目录,请从-WhatIf
cmdlet中删除Remove-Item
。
Get-ChildItem -Recurse -Directory -Filter 'Autoname' |
ForEach-Object { Remove-Item -Path $_.PSParentPath -Recurse -WhatIf }