窗口 – 双击时暂停批处理文件,但从控制台窗口运行时不会暂停批处理文件?

发布时间:2019-07-11 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了窗口 – 双击时暂停批处理文件,但从控制台窗口运行时不会暂停批处理文件?脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否有批处理文件的方式(在这种情况下,在Windows XP上运行),以确定是从命令行启动(即在控制台窗口内)还是通过shell启动(例如双击)?

我有一个脚本,我想通过shell运行时暂停某些点,但在命令行运行时不会。我在SO上看到了a similar question,但无法使用相同的解决方案有两个原因:首先,它是否停留需要依赖于多个因素,其中只有一个是双击。其次,我将这个脚本发送给我的团队的其他人,我无法实际地询问所有这些脚本进行注册表更改,这会影响所有的脚本。

这可能吗?

解决方法

找到一个:-) – 经过拼命的思考,在交互式运行时可能会执行什么,但直接启动批处理文件时,我终于找到了一个。

伪变量%cmdcmdline%包含用于启动cmd的命令行。如果cmd正常启动,则会包含类似于以下内容的内容:

"C:\Windows\System32\cmd.exe"

但是,当启动批处理文件时,它看起来像这样:

cmd /c ""C:\Users\Me\test.cmd" "

小演示:

@echo off
for %%x in (%cmdcmdline%) do if /i "%%~x"=="/c" set DOUBLECLICKED=1
if defined DOUBLECLICKED pause

这种检查方法可能不是最强大的,但是如果直接启动批处理文件,/ c应该仅作为参数存在。

Works on my machine http://hypftier.de/dump/works_on_my_machine.png

在这里测试Windows 7 x64。它可能或可能不工作,打破,做一些奇怪的事情,吃孩子(可能是一件好事)或咬你的鼻子。

总结

以上是脚本之家为你收集整理的窗口 – 双击时暂停批处理文件,但从控制台窗口运行时不会暂停批处理文件?全部内容,希望文章能够帮你解决窗口 – 双击时暂停批处理文件,但从控制台窗口运行时不会暂停批处理文件?所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:76874919,请注明来意。

脚本之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ” ,选择关注!
精选程序员所需精品干货内容!

标签: