Board logo

标题: [文本处理] [已解决]批处理for语句批量建立私人共享文件夹和设定本地权限,运行报错救急!!! [打印本页]

作者: yangyf34    时间: 2020-4-24 14:48     标题: [已解决]批处理for语句批量建立私人共享文件夹和设定本地权限,运行报错救急!!!

本帖最后由 yangyf34 于 2020-4-24 17:11 编辑

同目录下有姓名.txt,内容为:
张三
李四
王五

现有个bat,用for取值出错:
  1. @echo off
  2. set pf=D:
  3. for /f "tokens=1 delims= " %%a in (姓名.txt) do (
  4. md %pf%\%%a
  5. echo y | icacls %pf%\%%a /inheritance:d /T
  6. echo y | icacls %pf%\%%a /remove:g users /T
  7. echo y | icacls %pf%\%%a /grant:r  %%a:(OI)(CI)F /T
  8. )
  9. pause
  10. exit
复制代码
运行一闪就关闭,去掉这句就正常: echo y | icacls %pf%\%%a /grant:r  %%aOI)(CI)F /T

cmd下单句运行却又正常:echo y | icacls D:\张三 /grant:r  张三:(OI)(CI)F /T
说明语法没问题,我估计是%%a:(OI)(CI)F的"%%a:"写法有误,但是不知道该怎么写,苦恼!!!

网上原bat代码,也不对:
  1. ::批量建立私人共享文件夹和设定本地权限(共享权限可以设everyone完全控制,靠本地权限来限制)
  2. @echo off
  3. set /p outputPath=请输入根目录:
  4. set /p importTxt=请导入用户列表(*.txt):
  5. for /f "tokens=1 delims= " %%j in ('more %importTxt%') do (
  6. mkdir %outputPath%\%%j
  7. echo Y
  8. (cacls % outputPath%\%%j /C /G %%j:F
  9. )
复制代码

作者: Batcher    时间: 2020-4-24 16:48

回复 1# yangyf34


第7行改成这样试试:
echo y | icacls %pf%\%%a /grant:r  %%a:^(OI^)^(CI^)F /T
作者: yangyf34    时间: 2020-4-24 17:09

回复 2# Batcher


    可以了...学习到了,非常感谢!!!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2