bat文件运行闪退
1、 今天写了一个bat文件,但是运行时出现闪退,系统不做反应,回头查了下资料,再联想到前两天修改系统语言的事,发现是在我保存文件时将编码格式弄错了,后来换成了ANSI格式就OK了—from Vae_smr
2、症状
安装 Tomcat 之后运行 startup.bat 命令行闪退
方案
打开 startup.bat 文件,在文件最后添加一行 pause,表示暂停,就可以看到命令行中的报错信息了----from 怪伽先森
3、今日运行一个BAT脚本文件,发现仅仅闪了一下就退出了。于是我认为.BAT脚本文件本身有错误,所以开始排错,以下是我排除错误的步骤:
1.由于别处原先存在一个此BAT文件的拷贝,而别处的那一个能正常运行,但这一个BAT却不能正常运行,利用比较工具比较发现两个BAT文件的内容完全相同。所以排除了书写错误。
2.鉴于以上的基础上,我只能怀疑是位置变了,BAT文件里面引用的相对路径解析成绝对路径后肯定变化了,可能因为绝对路径的不同会有影响,因此我加了个中pause一步步的试,发现也不是这个原因。
3.郁闷啊,无解啊。正在此时我发现了一个关键的问题,那就是此次不能运行的BAT文件所在的文件夹名字里面包含了括号。因此我觉得问题可能是这个括号的原因,赶紧将括号去掉,一运行,瞬间不再闪退了,搞定。看来问题真的是BAT文件所在文件夹的名字里面包含了括号的原因啊。
好吧,既然已经知道问题所在了,那么当然很好奇有没有别人遇到过,或者有没有对这个问题的详细描述呢?果断百度啊,可是发现的线索很少,仅仅一个微软的英文资料里面有提到。看来我是个大奇葩,居然这么小概率的事件让我遇到了。英文资料的网址:http://support.microsoft.com/kb/217127/en-us。
基本意思是说.BAT脚本文件名里面不能有括号,否则会将括号解释成为命令的。如果你非要用带括号的名字来命名BAT脚本文件,可以在cmd窗口里面将文件用引号括起来就行了。图例如下:
但我今天这个问题算是一个新发现,那就是不仅BAT文件本身的名字里面不能包含括号字符,就连BAT文件所在的文件夹以及更上层的文件夹的命名都不能包含括号。
————————————————
版权声明:本文为CSDN博主「springontime」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/springontime/article/details/22659523—from springontime
4、 今天执行一个bat命令,然而会出现问题:双击执行bat命令时,命令提示符界面会闪退。
然而该bat命令在他人电脑上可正常执行,而我会遇到这种问题。
以下是我尝试的方法:
首先尝试编辑bat命令,在bat命令末尾添加pause,保存。如此,重新双击执行bat命令,命令提示符界面仍然闪退。
接着借助浏览器查询这种问题发生的原因以及解决方法,https://blog.csdn.net/springontime/article/details/22659523,此文的结论就是:不仅BAT文件本身的名字里面不能包含括号字符,就连BAT文件所在的文件夹以及更上层的文件夹的命名都不能包含括号。同理可推断,我所运行的bat文件上层的文件夹虽然没有括号,但是存在空格“D:\Program Files…”,于是最终决定将该bat命令剪切到一个新的路径。
经过以上尝试,最终bat命令可以正常执行,不再发生闪退。
(学习过c语言里面的字符类型,一般来说空格,括号等都属于同一类型字符,故此有类推)-----from BluthLeee
上一篇: 【bat】以bat文件运行jar文件