Добавить и удалить язык в один клик -- можно ли?
Цитата: Олесь от 30.11.2022, 00:29Всем привет!
Известная проблема: некоторые игры ломают языковую панель. Чтобы её починить, надо добавить и удалить язык английский-США (по умолчанию у меня вторым, плюс к русскому, стоит другой).
Так вот задача: можно ли это добавление-удаление упростить, в идеале -- чтобы всё это делалось в один запуск батника или, там, VB-скрипта?
Всем привет!
Известная проблема: некоторые игры ломают языковую панель. Чтобы её починить, надо добавить и удалить язык английский-США (по умолчанию у меня вторым, плюс к русскому, стоит другой).
Так вот задача: можно ли это добавление-удаление упростить, в идеале -- чтобы всё это делалось в один запуск батника или, там, VB-скрипта?
Цитата: Олесь от 30.11.2022, 00:42Вот здесь вот что-то есть, но я почти ничего не понимаю в батниках, поэтому не уверен, тО ли там, что мне надо, и буду очень благодарен, если кто-то соберёт нужный бат-файл. Насколько я понимаю, нужные куски кода имеются по ссылке.
Вот здесь вот что-то есть, но я почти ничего не понимаю в батниках, поэтому не уверен, тО ли там, что мне надо, и буду очень благодарен, если кто-то соберёт нужный бат-файл. Насколько я понимаю, нужные куски кода имеются по ссылке.
Цитата: Mikhail от 30.11.2022, 02:04Привет.
Не совсем понял, но вот архив, там лежит батник и xml файл с содержанием, коды языков тут, подставляем сюда, тыкаем батник и все.
Привет.
Не совсем понял, но вот архив, там лежит батник и xml файл с содержанием, коды языков тут, подставляем сюда, тыкаем батник и все.
Цитата: Mikhail от 30.11.2022, 02:22Лучше на виртуалке потыкай, а то на живой, удалишь все, Английский по умолчанию
0409:00000409.
Лучше на виртуалке потыкай, а то на живой, удалишь все, Английский по умолчанию Скопировано0409:00000409.
Цитата: Олесь от 30.11.2022, 02:31Цитата: 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: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
Цитата: Олесь от 30.11.2022, 02:35Цитата: Mikhail от 30.11.2022, 02:22Английский по умолчанию
0409:00000409.Что английский-США -- это 409, я ОЧЕНЬ хорошо выучил 🙂 , потому что на каждой новой винде мне приходится лазать в реестр и там заниматься чисткой по советам из этой темы. То ли я такой невезучий, то ли это распространённая для ноутов проблема.
Цитата: Mikhail от 30.11.2022, 02:22Английский по умолчанию
Скопировано0409:00000409.
Что английский-США -- это 409, я ОЧЕНЬ хорошо выучил 🙂 , потому что на каждой новой винде мне приходится лазать в реестр и там заниматься чисткой по советам из этой темы. То ли я такой невезучий, то ли это распространённая для ноутов проблема.
Цитата: Mikhail от 30.11.2022, 02:36Цитата: Олесь от 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;"Наверное и такой можно, не проверял, взял что понятное попалось на глаза =)
Цитата: Олесь от 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;"
Наверное и такой можно, не проверял, взял что понятное попалось на глаза =)
Цитата: Psydiant от 20.05.2025, 00:41Цитата: Mikhail от 30.11.2022, 02:04Привет.
Не совсем понял, но вот архив, там лежит батник и xml файл с содержанием, коды языков тут, подставляем сюда, тыкаем батник и все.Михаил Приветствую! Перезалейте пожалуйста архив
Цитата: Mikhail от 30.11.2022, 02:04Привет.
Не совсем понял, но вот архив, там лежит батник и xml файл с содержанием, коды языков тут, подставляем сюда, тыкаем батник и все.
Михаил Приветствую! Перезалейте пожалуйста архив
Цитата: Mikhail от 20.05.2025, 02:02Psydiant, Привет.
Уже нет архива), надо собирать снова, я уже не помню что там было, надо в той теме поковыряться, где давали решение.
Psydiant, Привет.
Уже нет архива), надо собирать снова, я уже не помню что там было, надо в той теме поковыряться, где давали решение.
Цитата: Mikhail от 20.05.2025, 09:23Psydiant, Можно через 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и т.д.[spoiler title="Код"]
@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, Можно через 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 от 20.05.2025, 17:20Цитата: Mikhail от 20.05.2025, 09:23Psydiant, Можно через 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и т.д.[spoiler title="Код"]
@echo offchcp 1251 >nul:menuecho.echo 1. Добавить языкecho 2. Удалить языкecho 3. Выходset /p choice=Действие:if "%choice%"=="1" goto addif "%choice%"=="2" goto removeif "%choice%"=="3" exitgoto menu:addecho.echo 1. Английский (США) - en-USecho 2. Русский - ru-RUset /p lang=Номер:if "%lang%"=="1" set tag=en-USif "%lang%"=="2" set tag=ru-RUif not defined tag goto addpowershell -c "$ll=Get-WinUserLanguageList; $ll.Add('%tag%'); Set-WinUserLanguageList $ll -Force"echo Выполнено. Возможно потребуется перезагрузка...а может и нетpausegoto menu:removeecho.echo 1. Английский (США) - en-USecho 2. Русский - ru-RUset /p lang=Номер:if "%lang%"=="1" set tag=en-USif "%lang%"=="2" set tag=ru-RUif not defined tag goto removepowershell -c "$ll=Get-WinUserLanguageList; $ll.RemoveAll({$_.LanguageTag -eq '%tag%'}); Set-WinUserLanguageList $ll -Force"echo Выполнено. Возможно потребуется перезагрузка...а может и нетpausegoto 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[/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[/spoiler]Благодарю Михаил! Как всегда помогаешь! Слушай, заодно можешь мне помочь с моим вопросом в этой теме! А то у Сергея я так понял времени совсем нет, да заодно чтобы и твоё время не отнимать просто так, с меня как всегда поддержка!
Цитата: Mikhail от 20.05.2025, 09:23Psydiant, Можно через 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 offchcp 1251 >nul:menuecho.echo 1. Добавить языкecho 2. Удалить языкecho 3. Выходset /p choice=Действие:if "%choice%"=="1" goto addif "%choice%"=="2" goto removeif "%choice%"=="3" exitgoto menu:addecho.echo 1. Английский (США) - en-USecho 2. Русский - ru-RUset /p lang=Номер:if "%lang%"=="1" set tag=en-USif "%lang%"=="2" set tag=ru-RUif not defined tag goto addpowershell -c "$ll=Get-WinUserLanguageList; $ll.Add('%tag%'); Set-WinUserLanguageList $ll -Force"echo Выполнено. Возможно потребуется перезагрузка...а может и нетpausegoto menu:removeecho.echo 1. Английский (США) - en-USecho 2. Русский - ru-RUset /p lang=Номер:if "%lang%"=="1" set tag=en-USif "%lang%"=="2" set tag=ru-RUif not defined tag goto removepowershell -c "$ll=Get-WinUserLanguageList; $ll.RemoveAll({$_.LanguageTag -eq '%tag%'}); Set-WinUserLanguageList $ll -Force"echo Выполнено. Возможно потребуется перезагрузка...а может и нетpausegoto 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]
Благодарю Михаил! Как всегда помогаешь! Слушай, заодно можешь мне помочь с моим вопросом в этой теме! А то у Сергея я так понял времени совсем нет, да заодно чтобы и твоё время не отнимать просто так, с меня как всегда поддержка!
Цитата: Mikhail от 23.05.2025, 01:25Psydiant, Если тебе просто нужно удалять что-то из конкретного пути/в папке и т.д, и удалять конкретные расширения и т.д, то хватит простого батника, если пойдет тебе, то можно будет сделать.
Psydiant, Если тебе просто нужно удалять что-то из конкретного пути/в папке и т.д, и удалять конкретные расширения и т.д, то хватит простого батника, если пойдет тебе, то можно будет сделать.
Цитата: Psydiant от 23.05.2025, 07:01Цитата: Mikhail от 23.05.2025, 01:25Psydiant, Если тебе просто нужно удалять что-то из конкретного пути/в папке и т.д, и удалять конкретные расширения и т.д, то хватит простого батника, если пойдет тебе, то можно будет сделать.
Привет! Да именно это и нужно)
Цитата: Mikhail от 23.05.2025, 01:25Psydiant, Если тебе просто нужно удалять что-то из конкретного пути/в папке и т.д, и удалять конкретные расширения и т.д, то хватит простого батника, если пойдет тебе, то можно будет сделать.
Привет! Да именно это и нужно)
Цитата: Mikhail от 28.05.2025, 03:36Psydiant, Привет.
Попробуй, забыл совсем, вспомнил, накидал, утилиту, там config файл, в нем примеры строк как они должны выглядеть, что удаляют и как.
Psydiant, Привет.
Попробуй, забыл совсем, вспомнил, накидал, утилиту, там config файл, в нем примеры строк как они должны выглядеть, что удаляют и как.