Как я могу получить системный язык в Windows 7?
Я имею в виду что-то вроде: cs_CZ.UTF-8
Я попытался написать «локаль» в командной строке, но это не работает в Windows. Какие-либо предложения?
windows
localization
utf-8
Ричард Кноп
источник
источник
systeminfo.exe
само по себе работает, как и ответ gWaldo в PSGet-UICulture
илиGet-Host
в PowerShell(заглавная буква необязательна)
источник
Если вам нужен фактический язык для условного выполнения других действий в командном файле, вы можете создать командный файл (сохранить текстовый файл с расширением .bat) с помощью следующего. В качестве отправной точки это выведет в командную строку, например, «en-us» (без кавычек). Вы также можете использовать переменную! VERBOSE_SYSTEM_LOCALE! для удобочитаемого языка, например, английского (UnitedStates)
источник
На самом деле, ваши предложения терпят неудачу, потому что они основаны на поиске строки (« Системная локаль »), которая меняется в зависимости от текущей локали! На моем французском Win10Pro строка " Option régionale du système » (с акцентированной буквой, которую очень трудно правильно обработать в файле CMD).
Я провел некоторое тестирование, и, похоже, в моей системе строки о локали в выходных данных systeminfo - единственные, которые содержат точку с запятой (";"):
Основываясь на этом (что не может быть правдой в других системах с другими языками), я написал этот скрипт get_locale.cmd :
Результат моего скрипта на МОЕЙ системе:
Однако имейте в виду, что три переменные среды существуют только внутри сценария, они НЕ сохраняются в среде CMD после завершения сценария (нет команды экспорта, как в * nix).
источник
мне еще раз.
Я обнаружил небольшое улучшение в моем сценарии. Используя SETX, можно хранить переменные среды в среде USER для использования в будущем CMD Windows (как указано в SETX /? Второе замечание).
Тогда скрипт get_locale.cmd становится:
Для переменной VERBOSE_SYSTEM_LOCALE, поскольку значение может быть длиной в несколько слов, необходимо заключить %% C в кавычки, чтобы SETX получил только один параметр, как и ожидалось.
Теперь в любом новом окне CMD будут доступны следующие значения:
PS: Было бы неплохо, если бы другие участники из других стран с другими языками могли подтвердить, что ищут точку с запятой ';' работает в своих системах Windows. Заранее спасибо!
источник
System Locale: en-gb;English (United Kingdom)