简体   繁体   中英

a batch file to delete a folder which is inside another folder

On windows 7, How can i write a batch file to delete a folder which is inside another folder. this 'another folder' name varies.

Eg: C:\Users\%USERNAME%\AppData\Local\Mozilla\Firefox\Profiles\xxxxxx\cache2 

the 'xxxxxx' might change. Now, i want to delete the 'cache2' folder and all its contents.

i tried this:

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

but this is deleting the entire profiles folder.

can anyone out there please help me out with this.

for /d %%a in (
    "C:\Users\%USERNAME%\AppData\Local\Mozilla\Firefox\Profiles\*"
) do if exist "%%~fa\cache2\" echo rmdir /s /q "%%~fa\cache2"

For each folder under the Profiles folder, if it contains a cache2 subfolder, remove it.

rmdir commands are only echoed to console. If the output is correct, remove the echo command

简单:

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

If you know that your cache2 folder is a direct child of xxxxxx, then MC ND has a good answer. But if cache2 can appear at any level, then the following works, providing that cache2 is not a direct decendent of "...\\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"

If cache2 can be a direct child of "...\\Profiles", then the following should work as long as there are no folders with a name like "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"

Both commands above simply ECHO the RD statements. Simply remove ECHO when all looks correct.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM