Как запустить скрипт PowerShell - PullRequest
626 голосов
/ 10 января 2010

Как запустить скрипт PowerShell?

  • У меня есть скрипт с именем myscript.ps1
  • У меня установлены все необходимые фреймворки
  • Я установил эту политику выполнения вещь
  • Я следовал инструкциям на этой странице справки MSDN и я пытаюсь запустить его так: powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1' (с или без --noexit)

, который ничего не возвращает, кроме того, что выводится имя файла.

Нет ошибок, нет сообщений, ничего. О, когда я добавляю -noexit, происходит то же самое, но я остаюсь в PowerShell и должен выйти вручную.

Предполагается, что файл .ps1 запускает программу и возвращает уровень ошибки, зависящий от вывода этой программы. Но я совершенно уверен, что еще даже не доберусь туда.

Что я делаю не так?

Ответы [ 13 ]

662 голосов
/ 10 января 2010
  1. Запустите Windows PowerShell и подождите, пока появится командная строка PS
  2. Перейдите в каталог, в котором находится скрипт

    PS> cd C:\my_path\yada_yada\ (enter)
    
  3. Выполнить скрипт:

    PS> .\run_import_script.ps1 (enter)
    

Что мне не хватает ??

Или: вы можете запустить скрипт PowerShell из cmd.exe следующим образом:

powershell -noexit "& ""C:\my_path\yada_yada\run_import_script.ps1""" (enter)

согласно этому сообщению в блоге здесь

Или вы можете даже запустить скрипт Powershell из своего приложения на C # :-)

Асинхронное выполнение сценариев PowerShell из приложения C #

196 голосов
/ 10 января 2010

Если вы используете PowerShell 2.0, используйте параметр -File PowerShell.exe для вызова сценария из другой среды, например cmd.exe, например ::1001*

Powershell.exe -File C:\my_path\yada_yada\run_import_script.ps1
164 голосов
/ 31 января 2011

Если вы хотите запустить сценарий без изменения политики выполнения сценария по умолчанию, вы можете использовать переключатель bypass при запуске Windows PowerShell .

powershell [-noexit] -executionpolicy bypass -File <Filename>
61 голосов
/ 06 февраля 2015

Тип:

powershell -executionpolicy bypass -File .\Test.ps1

ПРИМЕЧАНИЕ. Здесь Test.ps1 - это сценарий PowerShell.

27 голосов
/ 08 марта 2010

У меня была такая же проблема, и я попробовал и попробовал ... Наконец я использовал:

powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'"

И поместите эту строку в пакетный файл, и это работает.

21 голосов
/ 01 июля 2010

Если у вас есть только PowerShell 1.0 , похоже, это достаточно хорошо:

powershell -command - < c:\mypath\myscript.ps1

Он передает файл сценария в командную строку PowerShell.

11 голосов
/ 23 августа 2016

Довольно просто. Щелкните правой кнопкой мыши файл .ps1 в Windows и в меню оболочки выберите Запуск с PowerShell .

.
10 голосов
/ 01 ноября 2016

Простой способ - использовать PowerShell ISE , открывать скрипт, запускать и вызывать ваш скрипт, функцию ...

Enter image description here

10 голосов
/ 17 ноября 2014

Использование файла 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

Если вам нужно запустить от имени администратора :

  1. Сделать ярлык, указывающий на командную строку (я назвал его Административная командная строка)
  2. Откройте свойства ярлыка и перейдите на вкладку «Совместимость»
  3. В разделе «Уровень привилегий» установите флажок «Запускать программу от имени администратора»
7 голосов
/ 16 июня 2013
  • Укажите путь к скрипту, то есть путь к файлу с помощью cmd:

    $> . c:\program file\prog.ps1

  • Запуск функции точки входа PowerShell:

    Например, $> add or entry_func or main

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