簡體   English   中英

共享計算機上多個用戶的批處理腳本

[英]Batch Script for Multiple Users on Shared Computer

我對編碼知之甚少,但是我整理了一批清潔工。

我無法弄清楚如何為共享計算機上的每個用戶運行它。

我所擁有的如下:

cd C:\Users\%username%\AppData\Local
rmdir /S /Q Temp
cd C:\
del C:\Windows\Prefetch\*.* /Q/F/S
del C:\Windows\Temp\*.* /Q/F/S
del C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Recent Items\*.* /Q
del "C:\Users\%USERNAME%\AppData\Local\Mozilla\Firefox\Profiles\ilk2mwjz.default\cache2\*.*"  /s /f /q /a
del "C:\Users\%USERNAME%\AppData\Local\Google\Chrome\User Data\Default\cache\*.*" /s /f /q /a
del "C:\Users\%USERNAME%\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\*.*" /s /f /q /a

一開始我for /d %%a in (C:\\Users\\*)中有for /d %%a in (C:\\Users\\*) ,但這似乎打破了它。

似乎您要嘗試從每個用戶中刪除文件,您可以簡單地使用FOR語句將CD到文件所在的正確目錄。貝婁就是一個例子。

:search
FOR /D %%G IN ("C:\Users\*") DO IF EXIST "%%~fG\desktop\*.ico" (
    set correctDir=%%G\desktop
    goto foundFile
)
goto :eof

:foundFile
cd "%correctDir%"
del /S *.ico
goto :search

上面的腳本將從每個用戶桌面刪除所有.ico文件。 它通過搜索每個桌面的任何現有.ico文件和第一個結果它將CD吧。 循環將返回到FOR語句,直到在用戶桌面上找不到更多的.ico為止。 該代碼的基礎取自我對線程批處理腳本的原始但類似的響應,該腳本從所有用戶的桌面刪除所有圖標

使用這種方法,我們可以為每個用戶創建多個文件/文件夾。 請確保以管理員身份運行此腳本,因為某些位置需要管理員權限才能刪除對象!

@ECHO OFF

Rem These item's are not user specific so we can just remove them.
del C:\Windows\Prefetch\*.* /Q /F /S
del C:\Windows\Temp\*.* /Q /F /S

Echo Windows\Prefetch\*.* Was deleted for all users!
Echo Windows\Temp\*.* Was deleted for all users!
goto File1

Rem The following items will be removed from each users.
Rem First Object.
:File1
FOR /D %%G IN ("C:\Users\*") DO IF EXIST "%%~fG\AppData\Local\Temp\*.*" (
    rem Here we need to CD one less layer to delete the folder.
    set "correctDir=%%G\AppData\Local"
    goto Found1
)
Echo Local\Temp\*.* Was deleted on all users!
goto File2

:Found1
cd "%correctDir%"
rmdir /S /Q Temp
goto File1

Rem Second object.
:File2
FOR /D %%G IN ("C:\Users\*") DO IF EXIST "%%~fG\AppData\Roaming\Microsoft\Windows\Recent Items\*.*" (
    set "correctDir=%%G\AppData\Roaming\Microsoft\Windows\Recent Items"
    goto Found2
)
Echo Windows\Recent Items\*.* Was deleted on all users!
goto File3

:Found2
cd "%correctDir%"
del /Q *.*
goto File2

Rem Third object.
:File3
FOR /D %%G IN ("C:\Users\*") DO IF EXIST "%%~fG\AppData\Local\Mozilla\Firefox\Profiles\ilk2mwjz.default\cache2\*.*" (
    set "correctDir=%%G\AppData\Local\Mozilla\Firefox\Profiles\ilk2mwjz.default\cache2"
    goto Found3
)
Echo ilk2mwjz.default\cache2\*.* Was deleted on all users!
goto File4

:Found3
cd "%correctDir%"
del /S /F /Q /A *.*
goto File3

Rem Forth object.
:File4
FOR /D %%G IN ("C:\Users\*") DO IF EXIST "%%~fG\AppData\Local\Google\Chrome\User Data\Default\cache\*.*" (
    set "correctDir=%%G\AppData\Local\Google\Chrome\User Data\Default\cache"
    goto Found4
)
Echo Default\cache\*.* Was deleted on all users!
goto File5

:Found4
cd "%correctDir%"
del /S /F /Q /A *.*
goto File4

Rem Fifth object.
:File5
FOR /D %%G IN ("C:\Users\*") DO IF EXIST "%%~fG\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\*.*" (
    set "correctDir=%%G\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC"
    goto Found5
)
Echo Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\*.* Was deleted on all users!
goto Completed

:Found5
cd "%correctDir%"
del /S /F /Q /A *.*
goto File5

Rem Finished Tasks.
:Completed
echo All Objects removed from users!
pause

goto :eof

對於命令基礎,

  • FOR /D使用%%G變量遍歷所有目錄。
  • %%~fG擴展到%%G目錄的完整路徑。
  • IF EXIST檢查文件是否存在。
  • CD指定您要更改到父目錄。
  • goto :eof退出腳本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM