中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-05 17:54
48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 批分配权限问题已结,只是P名不能为CACLS.bat
可打印版本  2,170 / 22
第1楼 beyoungse 发表于 2007-09-02 12:12
中级用户 发帖 112 积分 253
批分配权限问题已结,只是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 ]
第2楼 wudixin96 发表于 2007-09-02 12:23
银牌会员 发帖 931 积分 1,928
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 ]
第3楼 beyoungse 发表于 2007-09-02 12:54
中级用户 发帖 112 积分 253
我该怎么写啊,楼上的老大
第4楼 knoppix7 发表于 2007-09-02 13:33
银牌会员 发帖 634 积分 1,287 来自 cmd.exe
是这样吗?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 ]
第5楼 beyoungse 发表于 2007-09-02 13:40
中级用户 发帖 112 积分 253
4楼的老大,
还是同样出错,"已经达到最大的 setlocal 递归层"

我的系统是Windows Server 2003 Standard Edition
第6楼 knoppix7 发表于 2007-09-02 13:42
银牌会员 发帖 634 积分 1,287 来自 cmd.exe
@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
第7楼 beyoungse 发表于 2007-09-02 13:57
中级用户 发帖 112 积分 253
楼上的还是不行的,只是一个光标在运

我生成一个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 确认
第8楼 wudixin96 发表于 2007-09-02 14:15
银牌会员 发帖 931 积分 1,928
Originally posted by knoppix7 at 2007-9-2 01:33 PM:
是这样吗?wudixin96?
我怎么记得是32层。。。。。。。。(看来读书读晕了)


是我记错了,谢谢提醒
第9楼 wudixin96 发表于 2007-09-02 14:16
银牌会员 发帖 931 积分 1,928
不用setlocal,用call试试?
第10楼 beyoungse 发表于 2007-09-02 14:32
中级用户 发帖 112 积分 253
我现在只能说
“你能不能帮我写一个VBS”

因为………………
第11楼 wudixin96 发表于 2007-09-02 14:37
银牌会员 发帖 931 积分 1,928
@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


这样行吗?
第12楼 beyoungse 发表于 2007-09-02 14:50
中级用户 发帖 112 积分 253
不行的,执行完了,指定的文件夹还有以下系统默认的用户组或用户名称
Administrator (SERVER\Administrators)
CREATOR OWNER
SYSTEM
Users (SERVER\Users)
第13楼 wudixin96 发表于 2007-09-02 15:00
银牌会员 发帖 931 积分 1,928
没看楼主写的内容,如果内容正确的话,应该没问题的
第14楼 beyoungse 发表于 2007-09-02 15:36
中级用户 发帖 112 积分 253
写的东西是没有错



第15楼 wudixin96 发表于 2007-09-02 15:48
银牌会员 发帖 931 积分 1,928
楼主的P本来就是赋予某用户的对某文件夹的权限啊,没有删除其他用户的权限吧
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023