Я хочу изменить культуру принятых данных и ошибок в моем текущем интерактивном сеансе Powershell. Я знаю об этом вопросе powershell : changing the culture of current session и об этом вопросе Changing current culture на SuperUser. Основная проблема заключается в том, что он не работает с Powershell 3.0 и 4.0.Изменить текущую культуру сеанса Powershell, v3.0 + specific
PS C:\users\me\Documents> [system.threading.thread]::currentthread.currentculture
LCID Name DisplayName
---- ---- -----------
1049 ru-RU Русский (Россия)
PS C:\users\me\Documents> [system.threading.thread]::currentthread.currentculture=[system.globalization.cultureinfo]"en-US"
PS C:\users\me\Documents> [system.threading.thread]::currentthread.currentculture
LCID Name DisplayName
---- ---- -----------
1049 ru-RU Русский (Россия)
UI культура также не принимает новые настройки. Set-Culture
в целом не работает, независимо от того, использую ли я доступ администратора или нет - в любом случае, это не должно зависеть от этого, так как это действие действует только для одного процесса. Using-Culture
из блога MSDN Powershell, адаптированного сообществом SO, работает, но только частично, например, с текущей культурой «ru-RU» я могу получить правильную дату с »6/19/15 2:26:02 PM «string», которая находится в культуре «en-US» через Using-Culture "en-US" {get-date -date "6/19/15 2:26:02 PM"}
, но получение ошибки на другом языке невозможно: скажем, Using-Culture "en-US" {$null.test='1'}
приводит к ошибке с русской локалью, как будто культура не была изменена.
Это поведение было протестировано на моей рабочей станции Win7 Professional с установленным Powershell 4.0 и установлен Windows Server 2012 с установленной Powershell 3.0, которая необходима для разбора неправильно локализованных строк даты. Последний имеет UI-культуру «en-US» и системную локау «ru-RU».
Итак, изменилась культура сессии Powershell все еще возможна с PS3 и выше, и если да, то как? (Или это ошибки снова или изменения в PS3, о которых я не знаю?)
Чтобы запустить PSwindow под культурой, просто добавьте следующее к любому из перечисленных выше: ** start-process 'c: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe' ** – Scepticalist
У меня есть попробовал это без везения (продолжает показывать не английский выход), что я делаю неправильно? 'Set-Culture en-US start-process 'c: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe'' и внутри я запускаю' netsh wlan show drivers' – FrakyDale