@echo off
(for %%a in ("C:\Test1","C:\Test2") do (
echo Fixing Permission issue of %%a
ICACLS %%a | findstr /i "(I)"
if %ERRORLEVEL% EQU 1 (
echo/
echo Removing Inheritance from %%a
ICACLS %%a /inheritance:d
)
ICACLS %%a | findstr /i "User_1:(OI)(CI)(R)"
if %ERRORLEVEL% NEQ 0 (
echo/
Echo Updating Permission of User_1
ICACLS %%a /remove User_1
ICACLS %%a /grant:r "User_1:(OI)(CI)(R)"
)
)
我需要删除继承(如果存在)(我不想每次都运行删除继承),然后应用/删除某些权限。但我认为If else语句的%ERRORLEVEL%不能很好地工作。有人可以帮助我。Windows中的ACL权限
使用'@回响与SETLOCAL EnableDelayedExpansion'然后用'!ERRORLEVEL!',而不是'%ERRORLEVEL'%,见https://ss64.com/nt/delayedexpansion.html – JosefZ