按名称查找/删除特定文件夹 - 批号
Locate / Delete specific folder by name - Batch code
亲爱的 Whosebug 社区,
能否请您提供以下情况的批号:
To find the folders named "Autoname" if they exist, and delete their
host folders (X), folder itself (Autoname) and all the files inside.
(X ) folders may have any names
The path is: %userprofile%\AppData\Local\ -X- \ "Autoname" \
folders & files.
我找到了similar post and similar post,但这不是我需要的。
谢谢大家的宝贵时间,特别感谢@Compo的回答,被认为是最好的!
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
附加到该行(包括前导 space)应禁止报告此类错误。
你的问题现在表明 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"
从命令提示符:
@For /F "Delims=" %A In ('"Dir/B/S/AD-L "%Temp%"|FindStr/IEC:"\AutoName""') Do @If Exist "%~dpA" RD/S/Q "%~dpA"
如果您想继续使用 PowerShell,以下方法可能会奏效。当您确信将删除正确的目录时,请从 Remove-Item
cmdlet 中删除 -WhatIf
。
Get-ChildItem -Recurse -Directory -Filter 'Autoname' |
ForEach-Object { Remove-Item -Path $_.PSParentPath -Recurse -WhatIf }
亲爱的 Whosebug 社区,
能否请您提供以下情况的批号:
To find the folders named "Autoname" if they exist, and delete their host folders (X), folder itself (Autoname) and all the files inside.
(X ) folders may have any names
The path is: %userprofile%\AppData\Local\ -X- \ "Autoname" \ folders & files.
我找到了similar post and similar post,但这不是我需要的。
谢谢大家的宝贵时间,特别感谢@Compo的回答,被认为是最好的!
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
附加到该行(包括前导 space)应禁止报告此类错误。
你的问题现在表明 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"
从命令提示符:
@For /F "Delims=" %A In ('"Dir/B/S/AD-L "%Temp%"|FindStr/IEC:"\AutoName""') Do @If Exist "%~dpA" RD/S/Q "%~dpA"
如果您想继续使用 PowerShell,以下方法可能会奏效。当您确信将删除正确的目录时,请从 Remove-Item
cmdlet 中删除 -WhatIf
。
Get-ChildItem -Recurse -Directory -Filter 'Autoname' |
ForEach-Object { Remove-Item -Path $_.PSParentPath -Recurse -WhatIf }