批处理文件,用于删除另一个文件夹中的文件夹

时间:2014-09-29 10:32:07

标签: windows batch-file

在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
)

但这是删除整个个人资料文件夹。

任何人都可以帮我解决这个问题。

3 个答案:

答案 0 :(得分:1)

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命令

答案 1 :(得分:0)

简单:

rmdir /s C:\Users\%USERNAME%\AppData\Local\Mozilla\Firefox\Profiles\xxxxxx\cache2

答案 2 :(得分:0)

如果你知道你的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可以是" ... \ Profiles"的直接子代,那么只要没有名称为" 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。