【问题标题】:using icacls in batch file在批处理文件中使用 icacls
【发布时间】:2012-12-21 21:13:07
【问题描述】:

我想制作一个批处理文件,它使用 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 中运行相同的命令,它会完美运行。那么,如何更正批处理文件中的命令以使其正常运行?

【问题讨论】:

  • 这里有一个提醒:N(无访问权限)在 icacls 命令参数中永远不起作用。 N 仅用于显示,是(DENY)(F) 的简写。除此之外没有其他用处。

标签: windows batch-file permissions


【解决方案1】:

看起来您的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"
)

【讨论】:

  • 可能不适合发表评论,但你能给我 icacls 命令的工作示例,不要为每个人访问文件夹
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-18
  • 1970-01-01
  • 1970-01-01
  • 2013-09-25
  • 1970-01-01
  • 2014-02-26
相关资源
最近更新 更多