我正在编写一个负责读取 Windows 终端的命令输出的脚本。
目的是使用命令“ sc query <service_name>
”读取命令行输出,并基于正则表达式,使用并重新发送更简洁的数据给用户。
问题是,如果给定用户语言,输出内容可能会完全改变。我不应该编写一个脚本来sc query
用所有可能的语言解释“”。最好在运行脚本之前设置一种通用语言,这样我就可以使用单一的输出格式,无论用户语言是什么。
搜索时首先出现的是“ chcp
”命令。但它对我不起作用,当命令不起作用时,搜索也没有什么进展。
您可以在打印屏幕中查看我更改语言的试验(两次)以及以葡萄牙语输出的输出服务示例。
使用 chcp 更改 cmd 语言的试验输出示例:
我需要做什么?还有其他方法可以更改 cmd 语言吗?或者我需要做其他事情才能使命令正常chcp
工作?
答案1
答案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 终端的语言。