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



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




  • у меня есть скрипт с именем myscript. ps1

  • у меня установлены все необходимые фреймворки

  • Я установил эту политику выполнения

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


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



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



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

581   13  

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 до -File "C:\xxx.ps1"

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

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

Comments

    Ничего не найдено.