it-swarm.dev

Cómo ejecutar un script de PowerShell

¿Cómo ejecuto un script de PowerShell?

  • Tengo un script llamado myscript.ps1
  • Tengo todos los frameworks necesarios instalados.
  • Puse esa política de ejecución cosa
  • He seguido las instrucciones en esta página de ayuda de MSDN y estoy intentando ejecutarlo así: powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1' (con o sin --noexit)

que no devuelve exactamente nada, excepto que el nombre del archivo es de salida.

Ningún error, ningún mensaje, nada. Oh, cuando agrego -noexit, sucede lo mismo, pero permanezco dentro de PowerShell y tengo que salir manualmente.

Se supone que el archivo .ps1 ejecuta un programa y devuelve el nivel de error dependiendo de la salida de ese programa. Pero estoy bastante seguro de que aún no estoy llegando.

¿Qué estoy haciendo mal?

617
Pekka 웃
  1. Inicie Windows PowerShell y espere un momento a que aparezca el comando PS.
  2. Navega al directorio donde vive el script

    PS> cd C:\my_path\yada_yada\ (enter)
    
  3. Ejecutar el script:

    PS> .\run_import_script.ps1 (enter)
    

¿¿Qué me estoy perdiendo??

O: puede ejecutar el script de PowerShell desde cmd.exe de esta forma:

powershell -noexit "& ""C:\my_path\yada_yada\run_import_script.ps1""" (enter)

de acuerdo a esto blog post aquí

O incluso podría ejecutar su script Powershell desde su aplicación C # :-)

Ejecutar asíncronamente los scripts de PowerShell desde su aplicación C #

652
marc_s

Si está en PowerShell 2.0, use el parámetro de archivo de PowerShell.exe para invocar un script desde otro entorno como cmd.exe, por ejemplo:

Powershell.exe -File C:\my_path\yada_yada\run_import_script.ps1
193
Keith Hill

Si desea ejecutar una secuencia de comandos sin modificar la política de ejecución predeterminada de la secuencia de comandos, puede usar el interruptor bypass al iniciar Windows PowerShell .

powershell [-noexit] -executionpolicy bypass -File <Filename>
162
Chingiz Musayev

Tipo:

powershell -executionpolicy bypass -File .\Test.ps1

NOTA: Aquí Test.ps1 es el script de PowerShell.

59
Sudheesh

He tenido el mismo problema, y ​​lo intenté y probé ... Finalmente utilicé:

powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'"

Y ponga esta línea en un archivo por lotes, y esto funciona.

27
Dennis

Si solo tienes PowerShell 1.0 , esto parece hacer el truco lo suficientemente bien:

powershell -command - < c:\mypath\myscript.ps1

Canaliza el archivo de comandos a la línea de comandos de PowerShell.

21
AndyM

Muy fácil. Haga clic derecho en el archivo .ps1 en Windows y en el menú Shell haga clic en Ejecutar con PowerShell .

11
electronictonic

Una forma fácil es usar PowerShell ISE , abrir script, ejecutar e invocar su script, función ...

 Enter image description here

Usando el archivo 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

Si necesita ejecute como administrador :

  1. Hacer un acceso directo que apunte al indicador de comando (lo llamé Símbolo de comando administrativo)
  2. Abra las propiedades del acceso directo y vaya a la pestaña Compatibilidad
  3. En la sección Nivel de privilegio, asegúrese de que la casilla de verificación junto a "Ejecutar este programa como administrador" esté marcada
9
Kiquenet
  • Indique la ruta del script, es decir, la configuración de ruta por cmd:

    $> . c:\program file\prog.ps1

  • Ejecute la función de punto de entrada de PowerShell:

    Por ejemplo, $> add or entry_func or main

7
pkm

Si su script se nombra con la extensión .ps1 y está en una ventana de PowerShell, simplemente ejecute ./myscript.ps1 (asumiendo que el archivo está en su directorio de trabajo).

Esto es cierto para mí de todos modos en Windows 10 con PowerShell versión 5.1 de todos modos, y no creo que haya hecho nada para hacerlo posible.

6
rainabba

En caso de que desee ejecutar un script de PowerShell con el Programador de tareas de Windows, siga los pasos a continuación:

  1. Crear una tarea

  2. Establecer Program/Script a Powershell.exe

  3. Establecer Arguments a -File "C:\xxx.ps1"

Es de otra respuesta,¿Cómo ejecuto un script de PowerShell automáticamente usando el programador de tareas de Windows?.

5
Gearon

Utilice el parámetro -File delante del nombre de archivo. Las citas hacen que PowerShell piense que es una serie de comandos.

1
Engineer