6

我正在编写一个 Perl 脚本,该脚本需要执行一些系统调用来获取一些系统数据。为了在任何计算机上可靠地解析这些调用的输出,我需要确保调用的输出设置为英语。

我面临的问题是,例如在我的 PC 中,我从这些命令中获得了本地化输出。我的 Windows 是用西班牙语设置的,所以调用像systeminfo用西班牙语返回数据。

是否有一个命令(或其他东西)我可以在命令调用中运行以使所有系统调用的行为就像系统始终使用英语一样,而无需修改系统配置中的任何内容?

提前感谢您的评论。

赏金注意事项:此问题的答案不得以任何方式干扰系统。它应该是一种从可以在任何机器上运行的系统调用/命令获取英文答案的方法,而无需修改其配置、注册表或其他。

4

2 回答 2

1

我认为WMIC命令是你最好的。自 Windows XP 以来,它一直是 Windows 的标准功能。

WMIC 具有对 Windows 系统的完全访问权限(取决于用户权限等),并且有一个区域设置选项,可以从已安装的语言包中选择有效的区域设置(对于命令)。

语言环境是从此处的列表中选择的。

要使用美国英语(如果可用)获取当前用户名,您可以使用wmic /locale:ms_409 netlogin get name

通过 WMI 界面,您甚至可能不需要本地化结果(即:如果足够小心,您可能只获得原始数据)。

于 2013-08-19T07:25:27.947 回答
1

此解决方案允许您使命令提示符以英语运行。它确实会更改一些注册表项,但如果您愿意,它也会将它们更改回来。您可以运行他们在.bats 中放入的相同命令,以使系统变为英语,然后返回本地化。

如果您尝试运行需要管理员权限的命令,那么您可以将这些调用包含在您的程序中而不会出现问题。

高温高压

于 2013-08-20T06:19:29.780 回答