批处理文件删除另一个文件夹内的文件夹
问题描述:
在Windows 7上,如何编写批处理文件以删除另一个文件夹内的文件夹。 这个“另一个文件夹”的名称各不相同。批处理文件删除另一个文件夹内的文件夹
Eg: C:\Users\%USERNAME%\AppData\Local\Mozilla\Firefox\Profiles\xxxxxx\cache2
的 'XXXXXX' 可能会改变。现在,我想删除'cache2'文件夹及其所有内容。
我想这:
:: Batch script to clear browsing history, download history, and empty the cache for Mozila Firefox.
:: Script can be run via GFI MAX RM
@echo off
TASKKILL /T /F /IM Firefox.exe
set DataDir=C:\Users\%USERNAME%\AppData\Local\Mozilla\Firefox\Profiles
del /q /s /f "%DataDir%"
rd /s /q "%DataDir%"
for /d %%x in (C:\Users\%USERNAME%\AppData\Roaming\Mozilla\Firefox\Profiles\*) do del /q /s /f %%x\*sqlite
start "" "C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
cls
IF %ERRORLEVEL%==0 (
@echo "Success Message"
timeout 10
) ELSE (
@echo "Error Message"
timeout 10
exit 1001
)
但这是删除整个文件夹的配置文件。
任何人都可以在这里帮我解决这个问题。
答
简单:
rmdir /s C:\Users\%USERNAME%\AppData\Local\Mozilla\Firefox\Profiles\xxxxxx\cache2
答
for /d %%a in (
"C:\Users\%USERNAME%\AppData\Local\Mozilla\Firefox\Profiles\*"
) do if exist "%%~fa\cache2\" echo rmdir /s /q "%%~fa\cache2"
对于Profiles
文件夹下的每个文件夹,如果它包含一个子文件夹cache2
,将其删除。
rmdir
命令只会响应控制台。如果输出正确,请删除echo
命令
答
如果您知道您的cache2文件夹是xxxxxx的直接子项,那么MC ND有一个很好的答案。但是,如果cache2可以出现在任何级别,那么以下工作,只要cache2不是“... \ Profiles \”的直接派生物。
@echo off
for /f "delims=" %%F in ('dir /b /ad /s "C:\Users\%USERNAME%\AppData\Local\Mozilla\Firefox\Profiles\cache2"') do echo rd /s /q "%%F"
如果cache2可以直接孩子“... \配置文件”,那么下面的人只要有包含‘cache2.x’的名称没有文件夹的工作。
@echo off
for /f "delims=" %%F in ('dir /b /ad /s "C:\Users\%USERNAME%\AppData\Local\Mozilla\Firefox\Profiles\cache2.?"') do echo rd /s /q "%%F"
上述两个命令只是ECHO RD语句。当所有看起来正确时,简单地删除ECHO。
您需要更仔细地阅读该问题。 xxxxxx表示名称未知的文件夹。 – dbenham 2014-09-29 16:56:11