Executando um script do PowerShell usando um arquivo em lotes (.bat)

2

Atualmente, esse é o meu caminho para o lançamento do prompt de comando do VMware vSphere PowerCLI. Desejo executar meu script sample.ps1 automaticamente usando um arquivo em lote. Como posso incorporar sample.ps1 nesse caminho e criar um arquivo de lote?

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\""
    
por user448402 07.07.2011 / 03:11

2 respostas

2

O que você gostaria de fazer é substituir o fim do comando no qual ele chama Initialize-PowerCLIEnvironment.ps1 e substituí-lo pelo caminho do arquivo sample.ps1.

Você quase certamente precisará ter a primeira linha de seu arquivo de amostra como a referência original a Initialize-PowerCLIEnvironment.ps1 , de modo que o código de inicialização (mais provável definição de função / cmdlet) seja executado antes de qualquer código que possa depender isso.

Por exemplo, o conteúdo do seu arquivo sample.ps1 seria parecido com isto:

# source vSphere PowerCLI Environment first
. "C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1"
# custom code follows
$me = "Hello, vSphere and PowerCLI!!!"
    
por 07.07.2011 / 05:07
1
echo off

Title,Sample Script &color 9e

for /f "usebackq delims=$" %%a in ('cd') do (
  set SCRIPTDIR=%%a
)

(Set ScriptFile=%SCRIPTDIR%\Sample.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%"
    
por 05.04.2012 / 03:24