批处理文件运行后不会退出(当生成多个批处理文件时)

批处理文件运行后不会退出(当生成多个批处理文件时)

当生成多个批处理文件时,此批处理文件(所有其他批处理文件)在运行后将不会退出。

我是一名经验丰富的 MS-DOS/Windows/Java 开发人员,之前从未见过这种行为。发生了一些非常奇怪的事情,我希望得到解决方法或一些线索。

举个例子,我制作了一个简单的测试脚本,名为 hung.bat,在 Windows 8.1(32 位)机器上通过命令提示符或单击文件来运行它:

@ECHO OFF
ECHO WELCOME TO HUNG
pause
ECHO HANGING UP
EXIT (**does not matter if this line is blank or EXIT or GOTO:EOF **)

我进入每个终端并按下继续键。然后它们都说“挂断”。

如果我打开了多个,它们在完成后不会关闭并退出。当我从命令提示符中使用“start hung.bat”或单击批处理文件时会发生这种情况。

我制作了这个简单的批处理文件来调试我们遇到的服务器服务问题——网络服务器使用批处理文件来获取一些数据,当它有多个会话时,它们也会停滞并且无法完成。

似乎与文件无关 如果我复制两份文件 hung1.bat 和 hung2.bat 并分别单击一次,那么就会发生相同的行为!

家用机器上的不同行为 批处理脚本在我家用的 Windows 机器(Windows 8.1 32 位)上可以运行,但在我的工作机器(也是 Windows 8.1 32 位,许可的全新 Windows 8.1 安装)上却不行。但即使我是管理员并以管理员身份运行,它仍然无法在我的工作机器上运行。

我甚至已经从 Windows Defender 中排除了该目录中的文件。

甚至更陌生 当我打开两个或更多命令窗口(命令或单击三次)时,最后一个窗口将正常工作并按预期关闭。但是,如果我单击第一个窗口(即最后一个窗口失去焦点),然后返回最后一个窗口,它也不再正常工作!

设置 我的家用电脑是 Windows 8.1 32 位,采用 AMD Phenom II x4 CPU,内存为 3GB。我的工作电脑是 Windows 8.1 32 位,采用 INter Core-i5-4570 CPU,内存为 4.00 GB(可用内存为 3.32 GB)。两台电脑都只使用 Windows Defender。即使关闭 Defender 并打开或关闭 DEP,也会发生这种情况。

更新 我们用 MalwareBytes 扫描了系统,还用 Windows 检查了文件的完整性。一切检查结果与以前一样,但问题仍然存在。

答案1

它是 LogMeIn ...

当远程用户连接时,它会改变命令 shell 窗口的行为,以便当脚本完成时它不会关闭 - 即使脚本是从快捷方式调用或使用“start ...”调用到单独的窗口中

我们发现,我断开了远程用户的连接,然后执行相同的批处理脚本,问题就解决了。

ShowMyPc 运行良好。我们没有测试 Windows Remote PC。

所以 LogMeIn 是罪魁祸首……

相关内容