[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理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. )
复制代码

回复 1# yangyf34


第7行改成这样试试:
echo y | icacls %pf%\%%a /grant:r  %%a:^(OI^)^(CI^)F /T
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# Batcher


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

TOP

返回列表