Вы должны войти, чтобы создавать сообщения и темы.

Добавить и удалить язык в один клик -- можно ли?

Страница 1 из 2►

Всем привет!
Известная проблема: некоторые игры ломают языковую панель. Чтобы её починить, надо добавить и удалить язык английский-США (по умолчанию у меня вторым, плюс к русскому, стоит другой).
Так вот задача: можно ли это добавление-удаление упростить, в идеале -- чтобы всё это делалось в один запуск батника или, там, VB-скрипта?

Вот здесь вот что-то есть, но я почти ничего не понимаю в батниках, поэтому не уверен, тО ли там, что мне надо, и буду очень благодарен, если кто-то соберёт нужный бат-файл. Насколько я понимаю, нужные куски кода имеются по ссылке.

Привет.
Не совсем понял, но вот архив, там лежит батник и xml файл с содержанием, коды языков тут, подставляем сюда, тыкаем батник и все.

Лайкнули Олесь и Psydiant
ОлесьPsydiant
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Лучше на виртуалке потыкай, а то на живой, удалишь все, Английский по умолчанию Скопировано0409:00000409.

Лайкнул Олесь
Олесь
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн
Цитата: Mikhail от 30.11.2022, 02:04

Привет.
Не совсем понял, но вот архив, там лежит батник и xml файл с содержанием, коды языков тут, подставляем сюда, тыкаем батник и все.

Спасибо!
Там в ответах ещё предложен вот такой код для батника, и вроде бы он тоже работает:

Скопировано@echo off
for %%q in (en-US) do ^
powershell -c "$ll=Get-WinUserLanguageList; $ll.add('%%q'); Set-WinUserLanguageList $ll -force;" & ^
powershell -c "$ll=Get-WinUserLanguageList; $ll.remove(($ll |? LanguageTag -like '%%q')); Set-WinUserLanguageList $ll -force;"

Единственно что раздражает мелькающее при запуске окно командной строки, но его я удалил с помощью vb-скрипта:
СкопированоSet WshShell = CreateObject("WScript.Shell")
СкопированоWshShell.Run chr(34) & "<тут ссылка на батник>" & Chr(34), 0
СкопированоSet WshShell = Nothing

Цитата: Mikhail от 30.11.2022, 02:22

Английский по умолчанию Скопировано0409:00000409.

Что английский-США -- это 409, я ОЧЕНЬ хорошо выучил 🙂 , потому что на каждой новой винде мне приходится лазать в реестр и там заниматься чисткой по советам из этой темы. То ли я такой невезучий, то ли это распространённая для ноутов проблема.

Цитата: Олесь от 30.11.2022, 02:31

 

Спасибо!
Там в ответах ещё предложен вот такой код для батника, и вроде бы он тоже работает:

Скопировано@echo off
for %%q in (en-US) do ^
powershell -c "$ll=Get-WinUserLanguageList; $ll.add('%%q'); Set-WinUserLanguageList $ll -force;" & ^
powershell -c "$ll=Get-WinUserLanguageList; $ll.remove(($ll |? LanguageTag -like '%%q')); Set-WinUserLanguageList $ll -force;"

Наверное и такой можно, не проверял, взял что понятное попалось на глаза =)

Лайкнул Олесь
Олесь
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн
Цитата: Mikhail от 30.11.2022, 02:04

Привет.
Не совсем понял, но вот архив, там лежит батник и xml файл с содержанием, коды языков тут, подставляем сюда, тыкаем батник и все.

Михаил Приветствую! Перезалейте пожалуйста архив

Psydiant, Привет.
Уже нет архива), надо собирать снова, я уже не помню что там было, надо в той теме поковыряться, где давали решение.

«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Psydiant, Можно через powershell, добавить новые языки для удаления или добавления можно просто добавивСкопировано if "%lang%"=="1" set tag=en-US в битнике ниже, где 1, там 3-4-5-6 и т.д и изменить Скопированоen-US на другой язык, Скопированоde-DE например смотри в батник и добавив меню для языка, например сейчас Скопированоecho 2. Русский - ru-RU, внизу дописываешь Скопированоecho 3. Германия - de-DE и т.д.

Код

@echo off
chcp 1251 >nul

:menu
echo.
echo 1. Добавить язык
echo 2. Удалить язык
echo 3. Выход
set /p choice=Действие: 

if "%choice%"=="1" goto add
if "%choice%"=="2" goto remove
if "%choice%"=="3" exit
goto menu

:add
echo.
echo 1. Английский (США) - en-US
echo 2. Русский - ru-RU
set /p lang=Номер: 

if "%lang%"=="1" set tag=en-US
if "%lang%"=="2" set tag=ru-RU
if not defined tag goto add

powershell -c "$ll=Get-WinUserLanguageList; $ll.Add('%tag%'); Set-WinUserLanguageList $ll -Force"
echo Выполнено. Возможно потребуется перезагрузка...а может и нет
pause
goto menu

:remove
echo.
echo 1. Английский (США) - en-US
echo 2. Русский - ru-RU
set /p lang=Номер: 

if "%lang%"=="1" set tag=en-US
if "%lang%"=="2" set tag=ru-RU
if not defined tag goto remove

powershell -c "$ll=Get-WinUserLanguageList; $ll.RemoveAll({$_.LanguageTag -eq '%tag%'}); Set-WinUserLanguageList $ll -Force"
echo Выполнено. Возможно потребуется перезагрузка...а может и нет
pause
goto menu
Лайкнули Вася и Psydiant
ВасяPsydiant
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн
Цитата: Mikhail от 20.05.2025, 09:23

Psydiant, Можно через powershell, добавить новые языки для удаления или добавления можно просто добавивСкопировано if "%lang%"=="1" set tag=en-US в битнике ниже, где 1, там 3-4-5-6 и т.д и изменить Скопированоen-US на другой язык, Скопированоde-DE например смотри в батник и добавив меню для языка, например сейчас Скопированоecho 2. Русский - ru-RU, внизу дописываешь Скопированоecho 3. Германия - de-DE и т.д.

Код

 
 
 
 
@echo off
chcp 1251 >nul
 
:menu
echo.
echo 1. Добавить язык
echo 2. Удалить язык
echo 3. Выход
set /p choice=Действие:
 
if "%choice%"=="1" goto add
if "%choice%"=="2" goto remove
if "%choice%"=="3" exit
goto menu
 
:add
echo.
echo 1. Английский (США) - en-US
echo 2. Русский - ru-RU
set /p lang=Номер:
 
if "%lang%"=="1" set tag=en-US
if "%lang%"=="2" set tag=ru-RU
if not defined tag goto add
 
powershell -c "$ll=Get-WinUserLanguageList; $ll.Add('%tag%'); Set-WinUserLanguageList $ll -Force"
echo Выполнено. Возможно потребуется перезагрузка...а может и нет
pause
goto menu
 
:remove
echo.
echo 1. Английский (США) - en-US
echo 2. Русский - ru-RU
set /p lang=Номер:
 
if "%lang%"=="1" set tag=en-US
if "%lang%"=="2" set tag=ru-RU
if not defined tag goto remove
 
powershell -c "$ll=Get-WinUserLanguageList; $ll.RemoveAll({$_.LanguageTag -eq '%tag%'}); Set-WinUserLanguageList $ll -Force"
echo Выполнено. Возможно потребуется перезагрузка...а может и нет
pause
goto menu[/spoiler]
@echo off chcp 1251 >nul :menu echo. echo 1. Добавить язык echo 2. Удалить язык echo 3. Выход set /p choice=Действие: if "%choice%"=="1" goto add if "%choice%"=="2" goto remove if "%choice%"=="3" exit goto menu :add echo. echo 1. Английский (США) - en-US echo 2. Русский - ru-RU set /p lang=Номер: if "%lang%"=="1" set tag=en-US if "%lang%"=="2" set tag=ru-RU if not defined tag goto add powershell -c "$ll=Get-WinUserLanguageList; $ll.Add('%tag%'); Set-WinUserLanguageList $ll -Force" echo Выполнено. Возможно потребуется перезагрузка...а может и нет pause goto menu :remove echo. echo 1. Английский (США) - en-US echo 2. Русский - ru-RU set /p lang=Номер: if "%lang%"=="1" set tag=en-US if "%lang%"=="2" set tag=ru-RU if not defined tag goto remove powershell -c "$ll=Get-WinUserLanguageList; $ll.RemoveAll({$_.LanguageTag -eq '%tag%'}); Set-WinUserLanguageList $ll -Force" echo Выполнено. Возможно потребуется перезагрузка...а может и нет pause goto menu
 
@echo off
chcp 1251 >nul

:menu
echo.
echo 1. Добавить язык
echo 2. Удалить язык
echo 3. Выход
set /p choice=Действие: 

if "%choice%"=="1" goto add
if "%choice%"=="2" goto remove
if "%choice%"=="3" exit
goto menu

:add
echo.
echo 1. Английский (США) - en-US
echo 2. Русский - ru-RU
set /p lang=Номер: 

if "%lang%"=="1" set tag=en-US
if "%lang%"=="2" set tag=ru-RU
if not defined tag goto add

powershell -c "$ll=Get-WinUserLanguageList; $ll.Add('%tag%'); Set-WinUserLanguageList $ll -Force"
echo Выполнено. Возможно потребуется перезагрузка...а может и нет
pause
goto menu

:remove
echo.
echo 1. Английский (США) - en-US
echo 2. Русский - ru-RU
set /p lang=Номер: 

if "%lang%"=="1" set tag=en-US
if "%lang%"=="2" set tag=ru-RU
if not defined tag goto remove

powershell -c "$ll=Get-WinUserLanguageList; $ll.RemoveAll({$_.LanguageTag -eq '%tag%'}); Set-WinUserLanguageList $ll -Force"
echo Выполнено. Возможно потребуется перезагрузка...а может и нет
pause
goto menu[/spoiler]

Благодарю Михаил! Как всегда помогаешь! Слушай, заодно можешь мне помочь с моим вопросом в этой теме! А то у Сергея я так понял времени совсем нет, да заодно чтобы и твоё время не отнимать просто так, с меня как всегда поддержка!

Psydiant, Если тебе просто нужно удалять что-то из конкретного пути/в папке и т.д, и удалять конкретные расширения и т.д, то хватит простого батника, если пойдет тебе, то можно будет сделать.

Лайкнули Вася и Psydiant
ВасяPsydiant
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн
Цитата: Mikhail от 23.05.2025, 01:25

Psydiant, Если тебе просто нужно удалять что-то из конкретного пути/в папке и т.д, и удалять конкретные расширения и т.д, то хватит простого батника, если пойдет тебе, то можно будет сделать.

Привет! Да именно это и нужно)

Psydiant, Привет.
Попробуй, забыл совсем, вспомнил, накидал, утилиту, там config файл, в нем примеры строк как они должны выглядеть, что удаляют и как.

Лайкнул Psydiant
Psydiant
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн
Страница 1 из 2►