好吧,这很奇怪。我不知道为什么会发生这种情况或如何解决这个问题。标题几乎说明了一切,但我将进一步详细说明:
打开cmd.exe运行命令或者调用批处理文件:好的
打开 WinKEY+R 运行批处理文件:好的
双击打开批处理文件:...不被识别为内部或外部命令、可运行程序或批处理文件。
此错误不仅限于我通过批处理文件调用的特定命令。即使是最简单的命令似乎也会失败。
所以我的第一个猜测是文件关联或环境变量出了问题。检查了这些,但它们似乎没有问题:
ComSpec
是%SystemRoot%\system32\cmd.exe
PATHEXT
是.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PATH
是C:\Windows\System32\;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;
注册表看起来也不错:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.cmd
OpenWithList
子项为空。
OpenWithProgids
包含:
(Default) REG_SZ (value not set)
cmdfile REG_NONE (zero-leght binary value)
这是一个相当新的 Windows 安装。Windows 7 x64。有什么想法现在该去哪里找吗?
答案1
这听起来像是编码问题。除非您知道需要 UTF-8 或 Unicode,否则请尝试保存以 ANSI 编码的批处理文件的副本。
- 在记事本中打开批处理文件
- 文件(菜单),另存为
- 输入不同的文件名(不覆盖)
- 在编码下拉菜单中选择 ANSI
- 点击“保存”
注意:如果您的批处理文件需要 UTF-8 或 Unicode 字符,则该过程会更加复杂。
答案2
好的,我想我已经搞明白了。显然在我发帖之前我遗漏了C:\Windows\System32\
变量PATH
。添加这个并发帖并没有改变任何东西,直到我做了书中最古老的修复:重新启动。这解决了问题。此外,由于某种原因(不确定这是默认的),变量USERNAME
不是SYSTEM
我的用户名。放入%username%
cmd 正确返回了我的用户名。有点奇怪,但现在一切似乎都正常了。