2013-11-20 96 views
2

我目前有一個批處理文件,用於從我的域上的配置文件中刪除2個文件夾,如下所示。BAT文件掃描目錄和刪除文件夾

IF EXIST "C:\Documents and Settings\%Username%\Application Data\Mozilla" (
    rmdir "C:\Documents and Settings\%Username%\Application Data\Mozilla" /s /q 
) 
IF EXIST "C:\Documents and Settings\%Username%\Application Data\Microsoft\CryptnetUrlCache" (
    rmdir "C:\Documents and Settings\%Username%\Application Data\Microsoft\CryptnetUrlCache" /s /q 
) 

但是,由於找到了這個批處理文件的成功,我們決定在我們的服務器上的所有用戶文件中實現它。 \%Username%\部分只會刪除登錄用戶當前正確的?我希望它從每個配置文件中刪除。

E:\Profiles\是我們存儲我們所有用戶配置文件的地方。

+0

[Google](http://www.google.com/search?q=batch+文件+迭代+通過+目錄)是一個偉大的第一步。列出了一些相關的堆棧溢出問題。 [這個答案](http://stackoverflow.com/a/16462274/119527)尤其如此。 –

+0

我不會問我是否已經不使用Google。在整個Profiles文件夾中,我一直在這方面工作了很長時間,但成效非常有限。 – user3015370

+0

我是現役海軍分配給一艘船,所以我相信你可以看到爲什麼我需要伸出援手。 – user3015370

回答

0

你可以做一點「Gambiarra」(Gambiarra是一種修復,在巴西,我們通過Gambiarra或只是Gambis調用)

@echo off 
pushd %userprofile% 
cd.. 
dir /b > "%~dp0\users.txt" 
popd 
For /F "delims=*" %%a in (users.txt) do (
set invalid=0 
CALL:PROCESS "%%a") 
del users.txt 
echo/Finish with error level %error% 
pause>nul 
:PROCESS 
For %%b in (Public UpdatusUser) do (CALL:EXCUSR "%%b" "%~1") 
if %invalid% EQU 1 (exit/b) 
if /i "%~1" == "All Users" (exit/b) 
if "%~x1" NEQ "" (exit/b) 
set "user=%~1" 
IF EXIST "C:\Documents and Settings\%User%\Application Data\Mozilla" (
    rmdir "C:\Documents and Settings\%User%\Application Data\Mozilla" /s /q 
) 
IF EXIST "C:\Documents and Settings\%User%\Application Data\Microsoft\CryptnetUrlCache" (
    rmdir "C:\Documents and Settings\%User%\Application Data\Microsoft\CryptnetUrlCache" /s /q 
) 
echo/User %user% complete 
set error=%errorlevel% 
exit/b 
:EXCUSR 
if "%~1" == "%~2" set invalid=1&exit/b 
net user %~2 1>nul 2>nul || set invalid=1&exit/b 
exit/b 

我希望這個代碼幫助您

+0

好的,謝謝。我會嘗試一下併發布結果。 – user3015370

0

可以使用主動設置。只需添加到蝙蝠文件的Active Setup執行(使用正確的環境變量來訪問userprofile):)好運)