"reg"不被识别为内部或外部命令、可操作的程序或批处理文件。

3

我正在一台服务器上运行批处理文件命令,使用reg query查找机器的处理器架构(AMD64或x86)。

但我遇到了这个错误,请问有人知道可能是什么问题。在运行此命令之前,需要检查哪些内容以及特定服务器上必须检查哪些内容。

这是命令:

reg query "HKLM\System\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE.

我不知道这是否有帮助。但该服务器的操作系统是W2k Advances SP 4。


你确定执行脚本的用户有运行 reg 的权限吗?也就是说,如果他们在命令提示符下键入 reg,它会起作用还是会出现错误? - FrustratedWithFormsDesigner
是的,这不是权限问题。因为我能够使用相同的凭据在链中运行其他一些服务器集合。 - alice7
路径问题?批处理文件中是否设置了路径环境变量?reg.exe通常位于\Windows\system32目录下。 - John Knoeller
您可能需要在Win2k服务器上安装reg.exe:http://support.microsoft.com/kb/301423/en-us - Carlos Gutiérrez
4个回答

11

我曾见过一个技术人员在脚本中使用了名为“path”的批处理变量。将 PATH 变量设置为 C:\Windows\System32,这样应该就可以解决找不到 reg.exe 的错误。


3

Windows 2000尚未包含reg.exe。但是,您可以在环境变量中找到处理器架构:

> echo %PROCESSOR_ARCHITECTURE%
AMD64

重新阅读您的问题:天哪,那就是您一直在尝试的方法,为什么还要费劲地使用复杂的方式,当您可以直接获取该值时?

这不是真的。Windows 2000有reg.exe,因为我在Windows 2000上运行了相同的查询而且成功了。但我不知道Advanced SP4。 - alice7
1
当我还在使用Windows 2000 Professional时,它并不存在。据我记得,它是作为资源工具包提供的。无论如何,“这不是重点”。您正在从注册表中获取某些内容,“这些内容可以作为环境变量使用”。既然您已经直接拥有该值,因此在此无需查询注册表。 - Joey
我完全同意你的看法,Rossell。但是我错误地选择了查询注册表的方法,而没有使用环境变量。我没有考虑到Windows 2000服务器。 - alice7

1

解决此错误的方法是将路径 C:\Windows\System32\ 添加到环境变量中:

  1. 右键单击“我的电脑”图标,然后选择属性。

  2. 选择“高级”选项卡,然后单击“环境变量”。

  3. 在系统变量面板上,选择“Path”,然后单击“编辑”按钮。

  4. 添加C:\Windows\System32,路径之间用分号隔开。


0

"reg" 在您执行它的环境路径中似乎不存在。尝试使用完整路径到 "reg"。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接