中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批分配权限问题已结,只是P名不能为CACLS.bat
« [1] [2] »
作者:
标题: 批分配权限问题已结,只是P名不能为CACLS.bat 上一主题 | 下一主题
beyoungse
中级用户





积分 253
发帖 112
注册 2005-12-20
状态 离线
『楼 主』:  批分配权限问题已结,只是P名不能为CACLS.bat

……访问控制……

@echo off&Setlocal EnableDelayedExpansion
for /l %%a in (1,1,40) do (
        set num=00%%a
        set num=A!num:~-3!
        cacls F:\data\!num! /T /G !num!:F
)
goto :eof

以上是我生搬的复制有规律文件夹的哪一篇 ,可是我执行中出现错误
如下:
已经达到最大的 setlocal 递归层,

[ Last edited by beyoungse on 2007-9-2 at 05:51 PM ]

2007-9-2 12:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 2 楼』:  

setlocal的最大递归层为32层,(原来的记错了)

在需要延迟的行启用延迟吧,不要在P的第一行就启用,不需要时end local

http://www.cn-dos.net/forum/viewthread.php?tid=21322

这个帖子里有说明吧

[ Last edited by wudixin96 on 2007-9-2 at 02:14 PM ]

2007-9-2 12:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
beyoungse
中级用户





积分 253
发帖 112
注册 2005-12-20
状态 离线
『第 3 楼』:  

我该怎么写啊,楼上的老大

2007-9-2 12:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
knoppix7
银牌会员





积分 1287
发帖 634
注册 2007-5-2
来自 cmd.exe
状态 离线
『第 4 楼』:  

是这样吗?wudixin96?
我怎么记得是32层。。。。。。。。(我看来读书读晕了)


@echo off
for /l %%a in (1,1,40) do (
        Setlocal EnableDelayedExpansion
        set num=00%%a
        set num=A!num:~-3!
        cacls F:\data\!num! /T /G !num!:F
        endlocal
)
goto :eof

[ Last edited by knoppix7 on 2007-9-2 at 04:50 PM ]

2007-9-2 13:33
查看资料  发短消息 网志   编辑帖子  回复  引用回复
beyoungse
中级用户





积分 253
发帖 112
注册 2005-12-20
状态 离线
『第 5 楼』:  

4楼的老大,
还是同样出错,"已经达到最大的 setlocal 递归层"

我的系统是Windows Server 2003 Standard  Edition

2007-9-2 13:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
knoppix7
银牌会员





积分 1287
发帖 634
注册 2007-5-2
来自 cmd.exe
状态 离线
『第 6 楼』:  

@echo off
for /l %%a in (1,1,40) do (
call :FUNC1 %%i
)
goto :eof

:FUNC1
set num=00%1
set num=A%num:~-3%
cacls F:\data\%num% /T /G %num%:F
goto :EOF

2007-9-2 13:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
beyoungse
中级用户





积分 253
发帖 112
注册 2005-12-20
状态 离线
『第 7 楼』:  

楼上的还是不行的,只是一个光标在运

我生成一个P文件:
CACLS F:\data\A001 /T /G A001:F
CACLS F:\data\A002 /T /G A002:F
……
……
……
CACLS F:\data\A040 /T /G A040:F

***************************************
P运行不行的,只出现一行就停住了;

我只能单行执行,但是又要按 Y 确认

2007-9-2 13:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by knoppix7 at 2007-9-2 01:33 PM:
是这样吗?wudixin96?
我怎么记得是32层。。。。。。。。(看来读书读晕了)

是我记错了,谢谢提醒

2007-9-2 14:15
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 9 楼』:  

不用setlocal,用call试试?

2007-9-2 14:16
查看资料  发短消息 网志   编辑帖子  回复  引用回复
beyoungse
中级用户





积分 253
发帖 112
注册 2005-12-20
状态 离线
『第 10 楼』:  

我现在只能说
“你能不能帮我写一个VBS”

因为………………

2007-9-2 14:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 11 楼』:  

@echo off
for /l %%a in (1,1,40) do (
        set num=00%%a
        call set num=A%%num:~-3%%
        call cacls F:\data\%%num%% /T /G %%num%%:F
)
goto :eof


这样行吗?

2007-9-2 14:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复
beyoungse
中级用户





积分 253
发帖 112
注册 2005-12-20
状态 离线
『第 12 楼』:  

不行的,执行完了,指定的文件夹还有以下系统默认的用户组或用户名称
Administrator (SERVER\Administrators)
CREATOR OWNER
SYSTEM
Users (SERVER\Users)

2007-9-2 14:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 13 楼』:  

没看楼主写的内容,如果内容正确的话,应该没问题的

2007-9-2 15:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
beyoungse
中级用户





积分 253
发帖 112
注册 2005-12-20
状态 离线
『第 14 楼』:  

写的东西是没有错





2007-9-2 15:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 15 楼』:  

楼主的P本来就是赋予某用户的对某文件夹的权限啊,没有删除其他用户的权限吧

2007-9-2 15:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: