中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 10:02
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » for 循环中不能使用hta脚本(结贴) 查看 886 回复 5
楼 主 for 循环中不能使用hta脚本(结贴) 发表于 2009-09-05 10:07 ·  中国 北京 中电华通通信有限公司
中级用户
★★
积分 216
发帖 129
注册 2007-02-14 07:26
19年会员
UID 79469
性别 男
状态 离线
for /f %%i in (ceshi.txt) do (
echo %%i| D:\web1\bat-vbs\winclip.exe -c
mshta.exe vbscript:createobject("wscript.shell").SendKeys("^+{ESC}")(window.close)
)
pause
在一闪而过的cmd窗口中 显示
此处不应该有.SendKeys("^+{ESC}")(window.close)
而直接运行
D:\web1\bat-vbs\mymshta.exe vbscript:createobject("wscript.shell").SendKeys("^+{ESC}")(window.close)是完全正常的,使用^+{ESC}"仅仅是为了显示方便,目的是发送^v
请高手过来看看 是什么原因,我如何更改?
我的系统对vbs进行了限制 只能使用hta来调用

[ Last edited by xswdong on 2009-9-5 at 11:30 ]
2 发表于 2009-09-05 10:10 ·  中国 北京 中电华通通信有限公司
中级用户
★★
积分 216
发帖 129
注册 2007-02-14 07:26
19年会员
UID 79469
性别 男
状态 离线
我的mshta已经改名 D:\web1\bat-vbs\mymshta.exe 扩展名myh 但这不是出错原因!
3 发表于 2009-09-05 10:26 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
转义
for /f %%i in (ceshi.txt) do (
echo %%i| D:\web1\bat-vbs\winclip.exe -c
mshta.exe vbscript:createobject("wscript.shell"^).SendKeys("^+{ESC}"^)(window.close^)
)
pause

 

[ Last edited by tireless on 2009-9-5 at 10:28 ]
4 发表于 2009-09-05 10:51 ·  中国 北京 中电华通通信有限公司
中级用户
★★
积分 216
发帖 129
注册 2007-02-14 07:26
19年会员
UID 79469
性别 男
状态 离线
谢谢tireless热心帮助,不过还是不大明白
为什么要加^哪
5 发表于 2009-09-05 11:04 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
不加的话,do 后面的语句就结束了。如:
for /f %%i in (ceshi.txt) do (
echo %%i| D:\web1\bat-vbs\winclip.exe -c
mshta.exe vbscript:createobject("wscript.shell")
.SendKeys("^+{ESC}")(window.close)
)
pause

所以要用转义符“^”把“)”变成普通字符。

[ Last edited by tireless on 2009-9-5 at 11:08 ]
6 发表于 2009-09-05 11:29 ·  中国 北京 中电华通通信有限公司
中级用户
★★
积分 216
发帖 129
注册 2007-02-14 07:26
19年会员
UID 79469
性别 男
状态 离线
再次感谢tireless
已经明白了
批处理的确不够聪明
论坛跳转: