如何更改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 終端機的語言。

相關內容