如何更改 cmd 终端的语言(chcp 不起作用)

如何更改 cmd 终端的语言(chcp 不起作用)

我正在编写一个负责读取 Windows 终端的命令输出的脚本。

目的是使用命令“ sc query <service_name>”读取命令行输出,并基于正则表达式,使用并重新发送更简洁的数据给用户。

问题是,如果给定用户语言,输出内容可能会完全改变。我不应该编写一个脚本来sc query用所有可能的语言解释“”。最好在运行脚本之前设置一种通用语言,这样我就可以使用单一的输出格式,无论用户语言是什么。

搜索时首先出现的是“ chcp”命令。但它对我不起作用,当命令不起作用时,搜索也没有什么进展。

您可以在打印屏幕中查看我更改语言的试验(两次)以及以葡萄牙语输出的输出服务示例。

使用 chcp 更改 cmd 语言的试验输出示例:

在此处输入图片描述

我需要做什么?还有其他方法可以更改 cmd 语言吗?或者我需要做其他事情才能使命令正常chcp工作?

答案1

在此处输入图片描述

在此处输入图片描述

你在想什么我不知道,但我知道SC命令的输出将以英语出现在描述系统所用语言的进程状态的项目中,我建议做一些事情以预测的方式拦截可能的状态的输出,然后转换/翻译成所需的语言。

答案2

CHCP更改编码而不是语言。没有命令可以执行此操作。如果您安装了多种语言,则系统通知区域上有一个图标可以更改语言。

所以这个命令并没有按照我的想法执行。为什么它没有按照我的想法执行?

答案3

我建议的方法,对相关问题的回答,就是针对与区域无关的非常具体的事物。在这种情况下,为了从 获取服务状态sc.exe,目标是获取标识状态的整数(该整数被发现与活动语言无关,因此是健壮的)。

简短示例(链接答案中的更多详细信息):

for /F "skip=3 tokens=3" %%i in ('""%windir%\system32\sc.exe" query "W32Time" 2^>nul"') do (
  if "%%i"=="4" (
    echo 'W32Time' service is running
    goto :SkipRemainingIterations
  )
)
:SkipRemainingIterations

答案4

当“chcp”命令不起作用时,要更改CMD终端的语言,可以尝试以下步骤:

打开CMD终端:在Windows计算机上启动CMD终端。

检查语言设置:确认操作系统当前的语言设置。转到“控制面板”或“设置”,然后导航到“语言”或“区域”选项。确保将所需语言选为默认语言。

修改系统区域设置:如果语言更改未反映在 CMD 中,则可能需要修改系统区域设置。在语言设置中,查找“管理”或“高级”选项卡。找到“更改系统区域设置”选项并选择所需的语言。这将更改非 Unicode 程序的语言设置。

重启计算机:修改系统区域设置后,建议重启计算机。这将确保语言更改生效。

按照以下步骤,您应该能够更改 CMD 终端的语言。

相关内容