2014-09-29 222 views
0

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

但这是删除整个文件夹的配置文件。

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

回答

0

简单:

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

您需要更仔细地阅读该问题。 xxxxxx表示名称未知的文件夹。 – dbenham 2014-09-29 16:56:11

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

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可以直接孩子“... \配置文件”,那么下面的人只要有包含‘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。

相关问题