2

ターミナル サーバー上のすべてのユーザー プロファイルの Firefox キャッシュ フォルダーを削除するバッチ ファイルを実行したいと考えています。ICSweep がすべてのユーザーの一時インターネット ファイルを削除するのと同じように。

Location: C:\users\ *username*\appdata\local\mozilla\firefox\profiles\ *random*.default\cache

問題は、異なるユーザー名フォルダーであり、firefox\profiles の下のサブフォルダーの名前には「ランダムな文字.default」が含まれており、すべてのユーザーで異なります。

これはバッチファイルで実行できますか? または、vb スクリプトのようなものが必要ですか?

これができれば、Google Chrome キャッシュに対してもこれを行います

C:\users\ *username*\appdata\local\google\chrome\user data\default\cache
4

2 に答える 2

2

はい、これは可能です。単純なバッチ再帰が必要なだけです。このスクリプトは、すぐに使用できます。キャッシュ フォルダーを削除する準備ができたら、echoコマンドをコマンドに置き換えるだけです。del

:: Hide Commands
@echo off
setlocal EnableExtensions

:: Parse the Local AppData sub path
call :Expand xAppData "%%LocalAppData:%UserProfile%=%%"

set "xFirefox=\mozilla\firefox\profiles"
set "xChrome=\google\chrome\user data"

:: Start at the User directory
pushd "%UserProfile%\.."

:: Loop through the Users
for /D %%D in (*) do if exist "%%~fD%xAppData%" (
    rem Check for Firefox
    if exist "%%~fD%xAppData%%xFirefox%" (
        pushd "%%~fD%xAppData%%xFirefox%"

        rem Loop through the Profiles
        for /D %%P in (*) do (
            if exist "%%~fP\cache" echo "%%~fP\cache"
        )
        popd
    )

    rem Check for Chrome
    if exist "%%~fD%xAppData%%xChrome%" (
        pushd "%%~fD%xAppData%%xChrome%"

        rem Loop through the Profiles
        for /D %%P in (*) do (
            if exist "%%~fP\cache" echo "%%~fP\cache"
        )
        popd
    )
)
popd
goto End


::::::::::::::::::::::::::::::
:Expand <Variable> <Value>
if not "%~1"=="" set "%~1=%~2"
goto :eof


:End
endlocal
pause

コメントの更新

Firefox の profile.ini ファイルを使用するには、上記の Firefox セクションのチェックをこれに置き換えます。

rem Check for Firefox INI
if exist "%%~fD%xAppData%%xFirefox%\profiles.ini" (
    pushd "%%~fD%xAppData%%xFirefox%\"

    rem Loop through the Profiles
    for /f "tokens=1,* delims==" %%L in (profiles.ini) do (
        if /i "%%~L"=="Path" if exist "%%~fM\cache\" echo "%%~fM\cache"
    )
    popd
)
于 2012-12-28T16:33:32.700 に答える