我想创建一个批处理文件,使用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中运行相同的命令,则它可以正常工作。那么,我如何更正批处理文件中的命令,以便它运行没有任何问题?
答案 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"
)