Как заставить Powershell запускать файлы VBS в консоли, не влияя на поведение двойного щелчка? - PullRequest
2 голосов
/ 25 марта 2011

На моем ПК VBS-файлы настроены (через записи ассоциации файлов в реестре) на запуск с использованием WScript.Это то, что я хочу, чтобы я мог дважды щелкнуть файл VBS и не открывать окно консоли.Однако, когда я использую командную строку Powershell, я бы хотел, чтобы сценарии VBS запускались с использованием CScript (то есть с использованием «cscript / nologo myfile.vbs»).Есть ли способ заставить Powershell делать это, не затрагивая поведение двойного щелчка?

Для отдельных скриптов я мог бы написать функцию для каждого (function foo {cscript / nologo foo.vbs $ args})но это не масштабируется вообще.Я имею в виду что-то вроде функции «исполняемых расширений» Take Command, которая позволяет вам установить определенное действие для расширения файла (set .vbs = cscript /nologo).

У меня такая же проблема для скриптов Pythonгде снова действие по умолчанию не делает то, что я хочу (по какой-то причине оно открывает второе окно консоли, а не отображает вывод в консоли Powershell), так что специфичный для VBS ответ даст мне только часть того, что я хочу:- (

Спасибо, Пол

1 Ответ

1 голос
/ 25 марта 2011

Самая простая вещь, о которой я могу подумать, это установить переменную среды всякий раз, когда вы запускаете Power Shell (имеет ли она функцию autoexec?), Назовем ее «InPowerShell» и присвоим ей значение «YES».1002 * Затем создайте файл .bat следующим образом:

if %InPowerShell%==YES (
  cscript /nologo #*
) else (
  wscript #*
)

Настройте все VBS-файлы для открытия с этим bat-файлом.Таким образом, всякий раз, когда вы дважды щелкаете по нему, он открывается с помощью wscript, а внутри powershell открывается с помощью cscript.

(Примечание: я не проверял это)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...