Как запустить скрипт PowerShell
Как запустить скрипт PowerShell?
- У меня есть скрипт с именем myscript.ps1
- У меня установлены все необходимые рамки
- Я установил эту политику выполнения вещь
- Я следовал инструкциям на этой странице справки MSDN
и я пытаюсь запустить его так:
powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1'
(с или без --noexit
)
который ничего не возвращает, кроме того, что имя файла выводится.
Нет ошибок, нет сообщений, ничего. О, когда я добавляю -noexit
, происходит то же самое, но я остаюсь в PowerShell и должен выйти вручную.
Предполагается, что файл .ps1 запускает программу и возвращает уровень ошибки, зависящий от вывода этой программы. Но я совершенно уверен, что еще даже не доберусь туда.
Что я делаю неправильно?
Ответы
Ответ 1
- Запустите Windows PowerShell и подождите, пока не появится командная строка
PS
Перейдите в каталог, где находится сценарий
PS> cd C:\my_path\yada_yada\ (enter)
Выполните скрипт:
PS> .\run_import_script.ps1 (enter)
Что мне не хватает??
Или: вы можете запустить скрипт PowerShell из cmd.exe
следующим образом:
powershell -noexit "& ""C:\my_path\yada_yada\run_import_script.ps1""" (enter)
в соответствии с этим блогом здесь
Или вы можете даже запустить скрипт PowerShell из своего приложения на С# :-)
Асинхронно выполнять сценарии PowerShell из вашего приложения С#
Ответ 2
Если вы используете PowerShell 2.0, используйте параметр PowerShell.exe -File
, чтобы вызвать сценарий из другой среды, например cmd.exe. Например:
Powershell.exe -File C:\my_path\yada_yada\run_import_script.ps1
Ответ 3
Если вы хотите запустить script без изменения политики выполнения по умолчанию script, вы можете использовать переключатель обхода при запуске Windows PowerShell.
powershell [-noexit] -executionpolicy bypass -File <Filename>
Ответ 4
Тип:
powershell -executionpolicy bypass -File .\Test.ps1
ПРИМЕЧАНИЕ. Здесь Test.ps1
находится PowerShell script.
Ответ 5
У меня была такая же проблема, и я попытался и попытался... Наконец, я использовал:
powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'"
И поместите эту строку в пакетный файл, и это работает.
Ответ 6
Если у вас есть только PowerShell 1.0, это, похоже, достаточно хорошо делает:
powershell -command - < c:\mypath\myscript.ps1
Он передает файл script в командную строку PowerShell.
Ответ 7
Довольно легко. Щелкните правой кнопкой мыши файл .ps1 в Windows и в меню оболочки выберите "Выполнить с PowerShell".
Ответ 8
Самый простой способ - использовать PowerShell ISE, открывать сценарий, запускать и вызывать свой сценарий, функцию...
![Enter image description here]()
Ответ 9
Использование файла cmd (BAT):
@echo off
color 1F
echo.
C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "PrepareEnvironment.ps1"
:EOF
echo Waiting seconds
timeout /t 10 /nobreak > NUL
Если вам нужно запустить как администратор:
- Сделайте ярлык, указывающий на командную строку (я назвал ее
Административная командная строка)
- Откройте свойства ярлыка и перейдите на вкладку Совместимость
- В разделе "Уровень привилегий" установите флажок "Запустить эту программу в качестве администратора".
Ответ 10
-
Укажите путь к script, то есть настройку пути по cmd:
$> . c:\program file\prog.ps1
-
Запустите функцию точки входа PowerShell:
Например, $> add or entry_func or main
Ответ 11
Если вы хотите запустить сценарий PowerShell с помощью планировщика задач Windows, выполните следующие действия:
Создать задачу
Установите Program/Script
на Powershell.exe
Установите Arguments
на -File "C:\xxx.ps1"
Это из другого ответа: Как автоматически выполнить сценарий PowerShell с помощью планировщика задач Windows?.
Ответ 12
Если ваш script имеет имя с расширением .ps1
и вы находитесь в окне PowerShell, вы просто запустите ./myscript.ps1
(если файл находится в вашем рабочем каталоге).
Это правда для меня в любом случае в Windows 10 с PowerShell версии 5.1 в любом случае, и я не думаю, что я сделал что-либо, чтобы сделать это возможным.
Ответ 13
Используйте параметр -File
перед именем файла. Кавычки заставляют PowerShell думать, что это строка команд.
Ответ 14
У меня есть очень простой ответ, который работает:
- Откройте PowerShell в режиме администратора
- Выполнить:
set-executionpolicy unrestricted
- Откройте обычное окно PowerShell и запустите свой скрипт.
Я нашел это решение по ссылке, указанной в сообщении об ошибке:
О политиках выполнения