Ejecutar un script de PowerShell utilizando un archivo por lotes (.bat)

2

Actualmente esta es mi ruta para iniciar el símbolo del sistema VMware vSphere PowerCLI. Deseo ejecutar mi script sample.ps1 automáticamente usando un archivo por lotes. ¿Cómo puedo incorporar sample.ps1 en esta ruta y crear un archivo por lotes?

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\""
usuario448402
fuente

Respuestas:

2

Lo que querría hacer es reemplazar el final del comando donde lo llama Initialize-PowerCLIEnvironment.ps1y reemplazarlo con la ruta a su archivo sample.ps1.

Es casi seguro que necesitará que la primera línea de su archivo de muestra sea la referencia original para Initialize-PowerCLIEnvironment.ps1que el código de inicialización (probablemente las definiciones de función / cmdlet) se ejecute antes de cualquier código que pueda depender de él.

Por ejemplo, el contenido de su archivo sample.ps1 se vería así:

# source vSphere PowerCLI Environment first
. "C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1"
# custom code follows
$me = "Hello, vSphere and PowerCLI!!!"
Goyuix
fuente
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%"
Farhad
fuente
Si bien esto puede responder la pregunta, sería una mejor respuesta si pudiera proporcionar alguna explicación de por qué lo hace.
DavidPostill