找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26781|回复: 2

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

[复制链接]
发表于 2020-4-24 14:48:26 | 显示全部楼层 |阅读模式
本帖最后由 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. )
复制代码
发表于 2020-4-24 16:48:40 | 显示全部楼层
回复 1# yangyf34


第7行改成这样试试:
echo y | icacls %pf%\%%a /grant:r  %%a:^(OI^)^(CI^)F /T
 楼主| 发表于 2020-4-24 17:09:35 | 显示全部楼层
回复 2# Batcher


    可以了...学习到了,非常感谢!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 18:34 , Processed in 0.017437 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表