2014-09-29 223 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。

相關問題