Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Как с помощью .bat файла добавить / удалить метод ввода (раскладку)? (http://forum.oszone.net/showthread.php?t=303030)

FalseTrue 29-07-2015 10:52 2533693

Как с помощью .bat файла добавить / удалить метод ввода (раскладку)?
 
Приветствую всех технических специалистов!

Коллеги, подскажите, пожалуйста, возможно ли создать два .bat файла, один из которых после выполнения добавлял украинскую раскладку, а второй — удалял? Если да, то какой код необходимо в них поместить?

UPD: забыл указать, что использую Windows 8.1.

Kazun 29-07-2015 11:12 2533701

Чем PowerShell не угодил?

Код:

#Добавить мову
$list = Get-WinUserLanguageList
$list.Add("uk-UA")
Set-WinUserLanguageList -LanguageList $list -Force

#Удалить мову
$list = (Get-WinUserLanguageList).where{$_.LanguageTag -ne "uk"}
Set-WinUserLanguageList -LanguageList $list -Force


FalseTrue 10-08-2015 11:34 2539552

Kazun, здравствуйте! Большое спасибо за ваш ответ. Подскажите, пожалуйста, ещё по такому вопросу: правильно ли я поступил, сохранив скрипты добавления / удаления украинской раскладки с расширением .ps1 ? В Windows 8.1 почему-то по двойному клику такие файлы не исполняются, а просто открываются в стандартном блокноте. Выполнить их можно, как я понимаю, только с помощью нажатия на ПКМ > Выполнить с помощью PowerShell.

И, кстати, скрипт добавления украинской раскладки добавляет расширенную версию, а какой код должен быть для добавления обычной украинской раскладки? Извините, что так долго не реагировал на ваш ответ, просто я рассчитывал, что подписавшись на топик мне сразу же придут уведомления на email, как это было раньше, но этого, к сожалению, не произошло. Сам решил посетить форум, т. к. был удивлён, что не ответили, но потом был очень рад, когда обнаружил ваш полезный ответ.

UPD: почитав немного про политику безопасности PowerShell, кажется, понял, почему нельзя по умолчанию выполнять скрипты по двойному клику — это небезопасно. Но возможно как-то для двух этих скриптов указать так, чтоб они выполнялись по двойному клику по ним? Я разместил два скрипта на рабочем столе, и очень было бы удобно просто кликать по ним для выполнения.

Iska 10-08-2015 12:54 2539603

Цитата:

Цитата FalseTrue
В Windows 8.1 почему-то по двойному клику такие файлы не исполняются, а просто открываются в стандартном блокноте. »

Они нигде по умолчанию не исполняются.

Цитата:

Цитата FalseTrue
Но возможно как-то для двух этих скриптов указать так, чтоб они выполнялись по двойному клику по ним? »

Нет, нельзя. Но Вы можете создать пакетный файл, который будет вызывать исполняемый модуль PowerShell и передавать ему полный путь к скрипту.

Foreigner 10-08-2015 13:49 2539618

Цитата:

Цитата Iska
Нет, нельзя. »

Можно еще переназначить ассоциации файлов.

Iska 10-08-2015 13:52 2539620

Цитата:

Цитата Foreigner
Можно еще переназначить ассоциации файлов. »

Имелось в виду именно:
Цитата:

Цитата FalseTrue
Но возможно как-то для двух этих скриптов указать так, чтоб они выполнялись по двойному клику по ним? »


FalseTrue 10-08-2015 14:22 2539628

Цитата:

Цитата Iska
Нет, нельзя. Но Вы можете создать пакетный файл, который будет вызывать исполняемый модуль PowerShell и передавать ему полный путь к скрипту. »

Подскажите, пожалуйста, как это реализовать?

Iska 10-08-2015 14:54 2539639

powershell command line - Поиск в Google. От версии к версии набор параметров может отличаться. Как я понимаю, это должно быть как-то так:
Код:

PowerShell.exe -NoLogo -File "Путь\Имя.ps1"

FalseTrue 10-08-2015 16:28 2539661

Всем большое спасибо за помощь. Остановился на рекомендации Kazun, но ещё хотелось бы научиться добавлять не расширенную украинскую раскладку, а обычную. Может кто знает?

Foreigner 10-08-2015 16:51 2539668

FalseTrue, Посмотрите список и выберите, чем отличаются обычная от расширенной не знаю:
Код:

[system.globalization.cultureinfo]::GetCultures("AllCultures")

Kazun 10-08-2015 17:26 2539677

Код:

$list = Get-WinUserLanguageList
$list.Add("uk")
$list[-1].InputMethodTips.Clear()
$list[-1].InputMethodTips.Add('0422:00000422')
Set-WinUserLanguageList -LanguageList $list -Force



Время: 19:02.

Время: 19:02.
© OSzone.net 2001-