中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 11:00
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » for 循环中不能使用hta脚本(结贴)
可打印版本  888 / 5
第1楼 xswdong 发表于 2009-09-05 10:07
中级用户 发帖 129 积分 216
for 循环中不能使用hta脚本(结贴)
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楼 xswdong 发表于 2009-09-05 10:10
中级用户 发帖 129 积分 216
我的mshta已经改名 D:\web1\bat-vbs\mymshta.exe 扩展名myh 但这不是出错原因!
第3楼 tireless 发表于 2009-09-05 10:26
银牌会员 发帖 1,122 积分 2,025
转义
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楼 xswdong 发表于 2009-09-05 10:51
中级用户 发帖 129 积分 216
谢谢tireless热心帮助,不过还是不大明白
为什么要加^哪
第5楼 tireless 发表于 2009-09-05 11:04
银牌会员 发帖 1,122 积分 2,025
不加的话,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楼 xswdong 发表于 2009-09-05 11:29
中级用户 发帖 129 积分 216
再次感谢tireless
已经明白了
批处理的确不够聪明
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023