我需要将文件夹复制到特定位置的 PC 列表中 - 然后将该文件夹完全控制给所有人,并将其继承到所有子文件夹和文件。我创建了一个包含 PC 列表的 txt 文件,然后将其包含在一个 bat 文件中。它执行简单的 ping 操作以查看是否继续复制 - 然后执行简单的 for/if/else 语句 - 它通常适用于其他“维护”任务......但是,在这种情况下,我无法得到icacls 命令才能正常工作。我最初使用的命令是这样的:
for /f %%a in (add_pclist.txt) do (
ping -n 2 %%a
if errorlevel 1 (
echo %%a >> Test_PCFileCopyFail.txt
) else (
xcopy/e/h/i/y FOLDERNAME "\\%%a\c$\users\Public\Desktop"
icacls "\\%%a\c$\users\Public\Desktop\HMI" /grant Everyone:F /T
echo %%a >> Test_PCFileCopySuccess.txt
)
)
但是,尽管这会复制并使文件夹完全控制 - 当我查看“属性”中的“安全”选项卡时,每个人都没有勾选。我选择高级,虽然它显示所有人为完全控制,但“Apples to”设置为“仅限此文件夹” - 我希望它显示“此文件夹、子文件夹和文件”。
如果我手动运行 cmd:
icacls "\\%%a\c$\users\Public\Desktop\HMI" /grant Everyone:(OI)(CI)F /T
这行得通。但是,当我将此命令放入批处理文件时,它会出现错误
(CI was unexpected at this time.
有没有办法在没有(OI)(CI)部分的情况下执行“适用于”部分 - 否则我如何将它包含在批处理文件中而不会出现错误?我还尝试在原始 icacls 命令中包含 /inheritance:e 无济于事。
非常感谢!