此命令位于一个大型批处理文件的中间,该文件在 Windows XP 下运行了 5 年以上,但在 Windows 7(32 位)下运行时,它报告“MyBatch.bat 未被识别为内部/外部命令, 可运行的程序或批处理文件”。
如果我编辑主批处理文件以在“cd”或“dir”行之前显示 MyBatch.bat 存在的目录,但 cmd 找不到它。
我发现使调用起作用的唯一方法是在该行之前加上“set path=%path%;%cd%”,但这仅适用于 MyBatch.bat 的位置现在位于路径中。对于主批处理文件的其余部分,这是一个不切实际的解决方案。我不能使用 'call MyBatch.bat ...' 代替,因为在其他地方 cmd /C 用于调用 .exe 文件。
在我的系统上,注册表中的“cmd”设置为管理员模式,并启用了命令扩展(主批处理文件的某些处理需要管理员模式)。我也尝试过将 cmd 设置为 WINXPSP3 兼容模式,但没有任何区别。
就好像 Win7 版本的 cmd 只使用 %path% 来查找东西,而不是查看它正在运行的目录,而 WinXP 版本则可以。我还没有在任何地方看到这种限制。
我是否误解了某些内容或错过了步骤或注册表标志?有没有办法让 cmd 在 Win7 下像在 WinXP 下一样工作?