Ни для кого не секрет, что простой код PowerShell гораздо приятнее запускать одной командой, используя параметр -Command, чем писать скрипт, сохранять его в текстовый файл, писать для него батник, запускать ISE, а самое главное - по умолчанию запуск скриптов вообще запрещен!
Намного удобнее просто открыть командный интерпретатор cmd.exe или просто меню Пуск>Выполнить, вбить команду и насладиться полученным результатом.
Для запуска такого кода я использую конструкцию powershell -noexit -command "& {}", а свой код помещаю внутрь фигурных скобок. Убрав параметр -noexit, окно автоматически закроется.
Основная проблема до недавнего времени крылась в том, что я не знал как передать двойные кавычки внутрь фигурных скобок. Они попросту не обрабатывались. Например:
powershell -noexit -command "& {$a = "some text"; $a}"
НО, powershell -noexit -command "& {"notepad.exe"}" прекрасно работает.
Я мучился с одинарными кавычками, облазил пол-Интернета, даже нашел как экранировать двойные кавычки с помощью символа `. Но разгадка оказалась простой донельзя. Нужно просто поставить перед кавычкой обратный слэш \!
powershell -noexit -command "& {$a = \"some text\"; $a}"
И чудо, все работает! И теперь можно запускать огромные куски кода одной строкой. Для разделения команд не забудьте использовать точку с запятой ;.
ПРИМЕР
Намного удобнее просто открыть командный интерпретатор cmd.exe или просто меню Пуск>Выполнить, вбить команду и насладиться полученным результатом.
Для запуска такого кода я использую конструкцию powershell -noexit -command "& {}", а свой код помещаю внутрь фигурных скобок. Убрав параметр -noexit, окно автоматически закроется.
Основная проблема до недавнего времени крылась в том, что я не знал как передать двойные кавычки внутрь фигурных скобок. Они попросту не обрабатывались. Например:
powershell -noexit -command "& {$a = "some text"; $a}"
НО, powershell -noexit -command "& {"notepad.exe"}" прекрасно работает.
Я мучился с одинарными кавычками, облазил пол-Интернета, даже нашел как экранировать двойные кавычки с помощью символа `. Но разгадка оказалась простой донельзя. Нужно просто поставить перед кавычкой обратный слэш \!
powershell -noexit -command "& {$a = \"some text\"; $a}"
И чудо, все работает! И теперь можно запускать огромные куски кода одной строкой. Для разделения команд не забудьте использовать точку с запятой ;.
ПРИМЕР
Круто, спасибо. По максимуму всегда изворачивался что бы использовать одинарные кавычки, но тут никак не обойти было. Работал еще вариант с нечетным числом двойных кавычек:
ОтветитьУдалить"""sometext""
Но работает только само по себе. Внутри цикла for все сразу же разваливается.