Как запустить скрипт PowerShell?
как запустить сценарий PowerShell?
- у меня есть сценарий с именем myscript.ps1
- у меня установлены все необходимые фреймворки
- Я установил, что выполнение политики вещь
- я следовал инструкциям на эта страница справки MSDN
и я пытаюсь управлять этим так.:
powershell.exe 'C:my_pathyada_yadarun_import_script.ps1'
(С или без--noexit
)
который возвращает ровно ничего, за исключением того, что имя файла вывода.
Нет ошибки, ни сообщения, ничего. О, когда я добавлю -noexit
, то же самое происходит, но я остаюсь в PowerShell и должен выйти вручную.
файл ps1 должен запускать программу и возвращать уровень ошибки, зависящий от вывода этой программы. Но я совершенно уверен, что еще не добрался до цели.
что я делаю не так?
13 ответов
- запустите 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 из приложения 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, откройте скрипт, запустите и вызовите свой скрипт, функцию...
использование файла 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
Если вам нужно Запуск от имени администратора:
- сделать ярлык, указывающий на командную строку (я назвал его Административная Командная Строка)
- откройте свойства ярлыка и перейдите на вкладку Совместимость
- в разделе уровень привилегий убедитесь, что флажок "запустить эту программу от имени администратора" установлен
довольно легко. Щелкните правой кнопкой мыши .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, выполните следующие действия:
создать задание
Set
Program/Script
доPowershell.exe
Set
Arguments
to-File "C:\xxx.ps1"
это из другого потока ответов https://stackoverflow.com/a/23954618/3378204
используйте параметр-File перед именем файла. Кавычки заставляют powershell думать, что это строка команд.