中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » 其它操作系统综合讨论区 » cmd /c后,如何将%1赋给其他变量
作者:
标题: cmd /c后,如何将%1赋给其他变量 上一主题 | 下一主题
wowfans
初级用户





积分 56
发帖 21
注册 2007-4-7
状态 离线
『楼 主』:  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赋值不成功。。。。

哪位大虾帮忙优化下

2008-4-1 15:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
abcd
银牌会员





积分 1436
发帖 739
注册 2007-10-11
状态 离线
『第 2 楼』:  

@="cmd /c @Echo y|cacls \"%~d1\" /t /c /p everyone:n"

   此帖被 +2 点积分    点击查看详情   
评分人:【 wowfans 分数: +2  时间:2008-4-1 18:44


2008-4-1 16:09
查看资料  发短消息 网志  OICQ (470237592)  编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 3 楼』:  


Windows Registry Editor Version 5.00


[HKEY_CLASSES_ROOT\Drive\shell\cacls3]
@="测试获取到的变量"
[HKEY_CLASSES_ROOT\Drive\shell\cacls3\command]
@="Cmd.exe /c \"@for /f \"delims=*\" %%a in (\"%1\") do @echo \"%%~da\"&pause\""




   此帖被 +2 点积分    点击查看详情   
评分人:【 wowfans 分数: +2  时间:2008-4-1 18:44




第一高手    第二高手

2008-4-1 16:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
faultcode
初级用户





积分 120
发帖 60
注册 2007-10-26
状态 离线
『第 4 楼』:  

set c=%1 & echo %c% 这一句存在变量延迟  所以得不到 %C%的值

   此帖被 +2 点积分    点击查看详情   
评分人:【 wowfans 分数: +2  时间:2008-4-1 18:45


2008-4-1 17:21
查看资料  发送邮件  发短消息 网志  OICQ (582954699)  编辑帖子  回复  引用回复
wowfans
初级用户





积分 56
发帖 21
注册 2007-4-7
状态 离线
『第 5 楼』:  

用3楼的方法解决了
多谢大家·呵呵

2008-4-1 18:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xhy999
新手上路





积分 8
发帖 4
注册 2008-4-1
状态 离线
『第 6 楼』:  

高手可真多啊

2008-4-1 23:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: