Запуск сценария PS1 с использованием командного файла (.bat) - PullRequest
4 голосов
/ 07 июля 2011

В настоящее время мой путь запуска командной строки VMware vSphere PowerCLI следующий. Я хочу запустить мой скрипт sample.ps1 автоматически, используя командный файл. Как я могу включить sample.ps1 в этот путь и создать командный файл?

C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -psc "C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\vim.psc1" -noe -c ". \"C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1\""

Ответы [ 4 ]

3 голосов
/ 07 июля 2011

Если вы работаете с PowerShell 2.0, вы можете использовать параметр -file PowerShell.exe

C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -psc "C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\vim.psc1" -noe -file "C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1"

Если вы работаете с PowerShell 1.0, вы можете использовать параметр -command следующим образом

C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -psc "C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\vim.psc1" -noe -command "& 'C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1'"
1 голос
/ 05 апреля 2012
echo off

Title,Report Script &color 9e
for /f "usebackq delims=$" %%a in (`cd`) do (
  set SCRIPTDIR=%%a
)

(Set ScriptFile=%SCRIPTDIR%\Report.ps1)

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -psc "C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\vim.psc1" -c ". \"C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1\";%ScriptFile%"
0 голосов
/ 19 июля 2016

Я видел этот код на другой странице, я тестирую его на W2012 R2, и он работает.

Я надеюсь, что это сработает:

C:\>powershell "C:\>1\file.ps1"
0 голосов
/ 10 апреля 2014

Вы можете использовать это для запуска произвольных скриптов .ps1 через файлы .bat, вызывая файл bat, как ваш ps1. Затем извлеките имя файла в пакетном режиме и вызовите powershell с ним.

Для готового к использованию решения используйте следующую суть: https://gist.github.com/JonasGroeger/10417237

...