中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-27 05:03
47,812 主题排行 / 349,912 发帖 / 今日 2 篇 / 48,264 会员排行
其它操作系统综合讨论区 » cmd /c后,如何将%1赋给其他变量
可打印版本  926 / 5
第1楼 wowfans 发表于 2008-04-01 15:22
初级用户 发帖 21 积分 56
cmd /c后,如何将%1赋给其他变量
曾经有一个右键设置NTFS权限的注册表文件
[HKEY_CLASSES_ROOT\Drive\shell\cacls3]
@="NTFS分区拒绝访问"
[HKEY_CLASSES_ROOT\Drive\shell\cacls3\command]
@="cmd /c set c=%1 & set c=%c:~0,-1% & @Echo y|cacls \"%c%\" /t /c /p everyone:n"
这个操作不成功,检查发现是%1变量根本没有赋给C,例如在F盘右击,%1就是F:\,想提取出F:都不行
测试过程如下

导入以下注册表
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Drive\shell\cacls3]
@="测试获取到的变量"

[HKEY_CLASSES_ROOT\Drive\shell\cacls3\command]
@="cmd /c echo %1 & set c=%1 & echo %c% & set c=%c:~0,-1% & echo %c% & pause"

然后在D:盘右击,选择 测试获取到的变量
得到的结果却是
D:\
c
c
Press any key to continue . . .


我想要的结果是
D:\
D:\
D:
Press any key to continue . . .


也就是对变量c赋值不成功。。。。

哪位大虾帮忙优化下
第2楼 abcd 发表于 2008-04-01 16:09
银牌会员 发帖 739 积分 1,436
@="cmd /c @Echo y|cacls \"%~d1\" /t /c /p everyone:n"
第3楼 fastslz 发表于 2008-04-01 16:11
铂金会员 发帖 2,315 积分 5,493 来自 上海
第4楼 faultcode 发表于 2008-04-01 17:21
初级用户 发帖 60 积分 120
set c=%1 & echo %c% 这一句存在变量延迟 所以得不到 %C%的值
第5楼 wowfans 发表于 2008-04-01 18:45
初级用户 发帖 21 积分 56
用3楼的方法解决了
多谢大家·呵呵
第6楼 xhy999 发表于 2008-04-01 23:40
新手上路 发帖 4 积分 8
高手可真多啊
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023