Как запустить PowerShell script?
powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1'
(с помощью или withot --noexit) который возвращает точно ничего, за исключением того, что выводится имя файла.
Нет ошибок, нет сообщений, ничего. О, когда я добавляю -noexit
, происходит то же самое, но я остаюсь в PowerShell и должен выйти вручную.
Файл ps1 должен запускать программу и возвращать уровень ошибки в зависимости от выхода этой программы. Но я вполне уверен, что еще не добрался.
Что я делаю неправильно?
Перейдите в каталог, в котором script живет
PS> cd C:\my_path\yada_yada\ (enter)
Выполните script:
PS> .\run_import_script.ps1 (enter)
Что мне не хватает?
Или: вы можете запустить PowerShell script из cmd.exe
следующим образом:
powershell -noexit "& ""C:\my_path\yada_yada\run_import_script.ps1""" (enter)
согласно этому сообщению
Или вы даже можете запустить свою Powershell script из своего приложения С#:-)
Асинхронно выполнять сценарии PowerShell из вашего приложения С#
powershell.exe
а затем файл сценария как-то облажался. У вас есть идеи, как это изменить?
powershell -noexit "& "C:\yada_yada\run_import_script.ps1"
(обратите внимание на три двойные кавычки). Я не очень понимаю, почему, но на данный момент мне все равно :) Большое спасибо !
Если вы используете PowerShell 2.0, используйте параметр PowerShell.exe -File для вызова script из другой среды, например cmd.exe, например:
Powershell.exe -File C:\my_path\yada_yada\run_import_script.ps1
Если вы хотите запустить script без изменения политики выполнения по умолчанию script, вы можете использовать переключатель обхода при запуске Windows PowerShell.
powershell [-noexit] -executionpolicy bypass -File <Filename>
-nologo
опцию -nologo
чтобы избавиться от загрузочного баннера.
Тип:
powershell -executionpolicy bypass -File .\Test.ps1
ПРИМЕЧАНИЕ. Здесь Test.ps1
находится PowerShell script.
powershell -executionpolicy bypass -File .\Test.ps1
при условии, что текущий рабочий каталог содержит Test.ps1
У меня была такая же проблема, и я попытался и попытался... Наконец, я использовал:
powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'"
И поместите эту строку в пакетный файл, и это работает.
Если у вас есть только PowerShell 1.0, это, похоже, достаточно хорошо делает:
powershell -command - < c:\mypath\myscript.ps1
Он передает файл script в командную строку PowerShell.
Использование файла 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
Если вам нужно запустить как администратор:
Простым способом является использование PowerShell ISE, откройте script, запустите и вызовите функцию script,...
Укажите путь к script, то есть настройку пути по cmd:
$> . c:\program file\prog.ps1
Запустите функцию точки входа PowerShell:
Например, $> add or entry_func or main
Довольно легко. Щелкните правой кнопкой мыши файл .ps1 в Windows и в меню оболочки выберите "Выполнить с PowerShell".
Если ваш script имеет имя с расширением .ps1
и вы находитесь в окне PowerShell, вы просто запустите ./myscript.ps1
(если файл находится в вашем рабочем каталоге).
Это правда для меня в любом случае в Windows 10 с PowerShell версии 5.1 в любом случае, и я не думаю, что я сделал что-либо, чтобы сделать это возможным.
powershell
как вы бы запустилиcmd
. Теперь вы можете выполнить скриптmyscript.ps1
как любой исполняемый файл там (в окне powershell), т.\myscript.ps1