在批处理文件中使用icacls

时间:2013-01-08 03:38:12

标签: windows batch-file permissions

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

@echo off

set /p username=Enter username:

echo Select permissions :

echo N  - no access
echo F  - full access
echo M  - modify access
echo RX - read and exe
echo R  - read-only acc
echo W  - write-only ac
echo D  - delete access

echo.

set /p perm=Enter permissions:

if %perm%==F

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

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

1 个答案:

答案 0 :(得分: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"
)