4

我想制作一个批处理文件,使用 icacls 将权限应用于给定的用户文件夹。这是我制作的批处理文件:

@echo 关闭

设置 /p 用户名=输入用户名:

回声选择权限:

echo N - 无法访问
echo F - 完全访问
echo M - 修改访问
echo RX - 读取和执行
echo R - 只读 acc
echo W - 只写交流
echo D - 删除访问

回声。

set /p perm=输入权限:

如果 %perm%==F

icacls "C:\Users\%username%" /grant:r "%username%:(OI)(CI)F"

当我运行此文件并将权限输入为 F 时,它显示此错误:命令的语法不正确。但如果我直接在 cmd 中运行相同的命令,它会完美运行。那么,如何更正批处理文件中的命令,使其运行没有任何问题?

4

1 回答 1

3

看起来您的if命令的语法导致了问题。您正在检查所选择的权限是否是F但随后不做任何事情。

尝试将它放在一条线上

if %perm%==F icacls "C:\Users\%username%" /grant:r "%username%:(OI)(CI)F"

或在括号中

if %perm%==F (
icacls "C:\Users\%username%" /grant:r "%username%:(OI)(CI)F"
)
于 2013-01-08T11:01:39.270 回答