中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-17 21:46
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批分配权限问题已结,只是P名不能为CACLS.bat 查看 2,023 回复 22
楼 主 批分配权限问题已结,只是P名不能为CACLS.bat 发表于 2007-09-02 12:12 ·  中国 广东 深圳 电信
中级用户
★★
积分 253
发帖 112
注册 2005-12-20 00:31
UID 47500
状态 离线
……访问控制……

@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 发表于 2007-09-02 12:23 ·  中国 香港 腾讯云
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
UID 75624
性别 男
状态 离线
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 发表于 2007-09-02 12:54 ·  中国 广东 深圳 电信
中级用户
★★
积分 253
发帖 112
注册 2005-12-20 00:31
UID 47500
状态 离线
我该怎么写啊,楼上的老大
4 发表于 2007-09-02 13:33 ·  中国 北京 海淀区 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
UID 87277
性别 男
来自 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 发表于 2007-09-02 13:40 ·  中国 广东 深圳 电信
中级用户
★★
积分 253
发帖 112
注册 2005-12-20 00:31
UID 47500
状态 离线
4楼的老大,
还是同样出错,"已经达到最大的 setlocal 递归层"

我的系统是Windows Server 2003 Standard Edition
6 发表于 2007-09-02 13:42 ·  中国 北京 海淀区 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
UID 87277
性别 男
来自 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 发表于 2007-09-02 13:57 ·  中国 广东 深圳 电信
中级用户
★★
积分 253
发帖 112
注册 2005-12-20 00:31
UID 47500
状态 离线
楼上的还是不行的,只是一个光标在运

我生成一个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 发表于 2007-09-02 14:15 ·  中国 香港 腾讯云
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
UID 75624
性别 男
状态 离线
Originally posted by knoppix7 at 2007-9-2 01:33 PM:
是这样吗?wudixin96?
我怎么记得是32层。。。。。。。。(看来读书读晕了)


是我记错了,谢谢提醒
9 发表于 2007-09-02 14:16 ·  中国 香港 腾讯云
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
UID 75624
性别 男
状态 离线
不用setlocal,用call试试?
10 发表于 2007-09-02 14:32 ·  中国 广东 深圳 电信
中级用户
★★
积分 253
发帖 112
注册 2005-12-20 00:31
UID 47500
状态 离线
我现在只能说
“你能不能帮我写一个VBS”

因为………………
11 发表于 2007-09-02 14:37 ·  中国 香港 腾讯云
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
UID 75624
性别 男
状态 离线
@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 发表于 2007-09-02 14:50 ·  中国 广东 深圳 电信
中级用户
★★
积分 253
发帖 112
注册 2005-12-20 00:31
UID 47500
状态 离线
不行的,执行完了,指定的文件夹还有以下系统默认的用户组或用户名称
Administrator (SERVER\Administrators)
CREATOR OWNER
SYSTEM
Users (SERVER\Users)
13 发表于 2007-09-02 15:00 ·  中国 香港 腾讯云
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
UID 75624
性别 男
状态 离线
没看楼主写的内容,如果内容正确的话,应该没问题的
14 发表于 2007-09-02 15:36 ·  中国 广东 深圳 电信
中级用户
★★
积分 253
发帖 112
注册 2005-12-20 00:31
UID 47500
状态 离线
写的东西是没有错



15 发表于 2007-09-02 15:48 ·  中国 香港 腾讯云
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
UID 75624
性别 男
状态 离线
楼主的P本来就是赋予某用户的对某文件夹的权限啊,没有删除其他用户的权限吧
论坛跳转: