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

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

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

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

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

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

13 ответов


  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#


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

Powershell.exe -File C:\my_path\yada_yada\run_import_script.ps1

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

powershell [-noexit] -executionpolicy bypass -File <Filename>

тип:

powershell -executionpolicy bypass -File .\Test.ps1

Примечание: здесь Test.ps1 - это сценарий PowerShell.


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

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

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


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

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

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


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

Enter image description here


использование файла 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. в разделе уровень привилегий убедитесь, что флажок "запустить эту программу от имени администратора" установлен

довольно легко. Щелкните правой кнопкой мыши .ps1 файл в Windows и в меню оболочки нажмите на запуск с помощью PowerShell.


  • дайте путь скрипта, то есть путь установки cmd:

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

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

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


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

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


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

  1. создать задание

  2. Set Program/Script до Powershell.exe

  3. Set Arguments to -File "C:\xxx.ps1"

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


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