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

Как запустить сценарий PowerShell?

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

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

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

Что я делаю неправильно?

вопрос задан 9.01.2010
Pekka 웃
349929 репутация

13 ответов


  • 558 рейтинг
    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 #

    ответ дан marc_s, с репутацией 557767, 9.01.2010
  • 174 рейтинг

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

     Powershell.exe -File C:\my_path\yada_yada\run_import_script.ps1
     
    ответ дан Keith Hill, с репутацией 138351, 9.01.2010
  • 145 рейтинг

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

     powershell [-noexit] -executionpolicy bypass -File <Filename>
     
    ответ дан Chingiz Musayev, с репутацией 1844, 30.01.2011
  • 49 рейтинг

    Тип:

    powershell -executionpolicy bypass -File .\Test.ps1

    ПРИМЕЧАНИЕ. Здесь Test.ps1 - скрипт PowerShell.

    ответ дан Sudheesh, с репутацией 491, 5.02.2015
  • 24 рейтинг

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

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

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

    ответ дан Dennis, с репутацией 1040, 8.03.2010
  • 19 рейтинг

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

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

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

    ответ дан AndyM, с репутацией 2321, 1.07.2010
  • 8 рейтинг

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

    Введите описание изображения здесь

    ответ дан Jose Evaristo Cepeda Barrera, с репутацией 81, 1.11.2016
  • 7 рейтинг

    Использование файла 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. В разделе «Уровень привилегий» убедитесь, что установлен флажок «Запустить эту программу в качестве администратора»
    ответ дан Kiquenet, с репутацией 6744, 17.11.2014
  • 6 рейтинг

    Довольно легко. Щелкните правой кнопкой мыши файл .ps1 в Windows и в меню оболочки выберите « Выполнить с помощью PowerShell» .

    ответ дан electronictonic, с репутацией 91, 23.08.2016
  • 5 рейтинг
    • Укажите путь к сценарию, то есть настройку пути по cmd:

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

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

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

    ответ дан pkm, с репутацией 1694, 16.06.2013
  • 4 рейтинг

    Если ваш сценарий имеет имя с расширением .ps1 и вы находитесь в окне PowerShell, вы просто запускаете ./myscript.ps1 (при условии, что файл находится в вашем рабочем каталоге).

    Это правда для меня в любом случае в Windows 10 с версией PowerShell 5.1 в любом случае, и я не думаю, что я сделал все, чтобы это стало возможным.

    ответ дан rainabba, с репутацией 1937, 6.09.2016
  • 1 рейтинг

    Если вы хотите запустить сценарий Powershell с помощью Планировщика заданий Windows, выполните следующие действия:

    1. Создать задачу

    2. Установите значение Program/Script - Powershell.exe

    3. Установите от Arguments до -File "C:\xxx.ps1"

    Это из другой ветки ответа https://stackoverflow.com/a/23954618/3378204

    ответ дан Gearon, с репутацией 4109, 24.05.2018
  • 0 рейтинг

    Используйте параметр -File перед именем файла. Кавычки заставляют powershell думать, что это строка команд.

    ответ дан Engineer, с репутацией 400, 1.08.2018