windows - tutorial - Cómo ejecutar un script de PowerShell
script powershell ejemplos (13)
- Inicie Windows PowerShell y espere un momento a que aparezca el símbolo del sistema PS
Navega al directorio donde vive el script
PS> cd C:/my_path/yada_yada/ (enter)
Ejecutar el script:
PS> ./run_import_script.ps1 (enter)
¿¿Qué me estoy perdiendo??
O: puede ejecutar el script de PowerShell desde cmd.exe
esta manera:
powershell -noexit "& ""C:/my_path/yada_yada/run_import_script.ps1""" (enter)
de acuerdo a esta entrada de blog aquí
O incluso puedes ejecutar tu script Powershell desde tu aplicación C # :-)
Ejecute asíncronamente los scripts de PowerShell desde su aplicación C #
¿Cómo ejecuto un script de PowerShell?
- Tengo un script llamado myscript.ps1
- Tengo todos los frameworks necesarios instalados.
- Puse esa cosa de la política de ejecución
- He seguido las instrucciones en esta página de ayuda de MSDN y estoy tratando de 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.
No hay error, no hay 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?
En caso de que desee ejecutar un script de PowerShell con el Programador de tareas de Windows, siga los pasos a continuación:
Crear una tarea
Establecer
Program/Script
enPowershell.exe
Establezca los
Arguments
en el-File "C:/xxx.ps1"
Es de otra respuesta, ¿Cómo ejecuto un script de PowerShell automáticamente usando el programador de tareas de Windows? .
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.
Muy fácil. Haga clic derecho en el archivo .ps1 en Windows y en el menú de shell, haga clic en Ejecutar con PowerShell .
Si desea ejecutar una secuencia de comandos sin modificar la política de ejecución de secuencia de comandos predeterminada, puede utilizar el interruptor de omisión al iniciar Windows PowerShell .
powershell [-noexit] -executionpolicy bypass -File <Filename>
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
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.
Si su secuencia de comandos 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).
De todos modos, esto es cierto para mí en Windows 10 con PowerShell versión 5.1, y no creo que haya hecho nada para hacerlo posible.
Tipo:
powershell -executionpolicy bypass -File ./Test.ps1
NOTA: Aquí Test.ps1
es el script de PowerShell.
Una forma fácil es usar PowerShell ISE , abrir un script, ejecutar e invocar su script, su función ...
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 ejecutar como administrador :
- Hacer un acceso directo que apunte al símbolo del sistema (lo denomine Símbolo del sistema administrativo)
- Abra las propiedades del acceso directo y vaya a la pestaña Compatibilidad
- 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
Utilice el parámetro -File
delante del nombre del archivo. Las citas hacen que PowerShell piense que es una cadena de comandos.
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