因此,如果我们提供完整路径,此脚本会删除所有Chrome数据。但无论如何使用通配符而不是一直更改用户名?我在服务器中有40个用户。 *和%%根本不起作用。有什么建议?
@echo off
set ChromeDir=C:\Users\*\AppData\Local\Google\Chrome\User Data
del /q /s /f "%ChromeDir%"
rd /s /q "%ChromeDir%"
cls
IF %ERRORLEVEL%==0 (
@echo "Success Message"
TIMEOUT /T 3 /NOBREAK
exit0
) ELSE (
@echo "Error Message"
TIMEOUT /T 3 /NOBREAK
exit 1001
)
答案 0 :(得分:2)
我有一些可以帮到你的建议。首先,缩进代码以使其更具可读性。并非所有批次都必须左对齐。其次,使用for /d
循环遍历目录。第三,如果在同一代码块中设置变量并引用该变量,则必须进行延迟扩展。 (虽然设置!ChromeDir!
并不重要,但我认为它会使代码更清晰。)
@echo off
setlocal enabledelayedexpansion
set "errors=0"
for /d %%I in ("C:\Users\*") do (
set "ChromeDir=%%~I\AppData\Local\Google\Chrome\User Data\Default\Cache"
if exist "!ChromeDir!" (
rem // Conditional execution increments %errors% if rd exits non-zero
rd /q /s "!ChromeDir!" || set /a errors += 1
)
)
echo %errors% errors encountered.
TIMEOUT /T 3 /NOBREAK
exit /b %errors%