2014-09-29 3 views
0

В Windows 7, как я могу написать пакетный файл для удаления папки, находящейся внутри другой папки. имя этой «другой папки» меняется.пакетный файл для удаления папки, находящейся внутри другой папки

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

'хххххх' может измениться. Теперь я хочу удалить папку «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

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 может быть прямым потомком «... \ 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, когда все выглядит правильно.

Смежные вопросы