Saltar al contenido

¿Cómo ejecutar un script de PowerShell con espacios en blanco en la ruta desde la línea de comando?

Solución:

-File Parámetro

Si quieres correr powershell.exe -File desde la línea de comandos, siempre debe establecer rutas con espacios en doubleqoutes ("). Comillas simples (') solo son reconocidos por powershell. Pero como se invoca powershell.exe (y, por lo tanto, se procesa el parámetro de archivo) mediante la línea de comando, debe usar ".

powershell.exe -File "C:UserstestDocumentsTest Spacetest.ps1" -ExecutionPolicy Bypass

-Command Parámetro

Si usa el -Command parámetro, en lugar de -File, los -Command el contenido es procesado por PowerShell, por lo tanto, puede, y en este caso, debe usar ' dentro ".

powershell.exe -Command "& 'C:UserstestDocumentsTest Spacetest.ps1'" -ExecutionPolicy Bypass

Las comillas dobles se procesan mediante la línea de comandos y & 'C:UserstestDocumentsTest Spacetest.ps1' es un comando que en realidad procesa PowerShell.

La solución 1 es obviamente más sencilla.

Tenga en cuenta que -Command también es el parámetro predeterminado que se utiliza, si no especifica ninguno.

powershell.exe "& 'C:UserstestDocumentsTest Spacetest.ps1'" -ExecutionPolicy Bypass

Esto también funcionaría.

-EncodedCommand Parámetro

Puede codificar su comando como Base64. Esto resuelve muchos problemas de “citas” y es a veces (pero no en su caso) la única forma posible.

Primero tienes que crear el comando codificado

$Command = "& 'C:UserstestDocumentsTest Spacetest.ps1'" 
[Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes($Command))

Y luego puedes usar el -EncodedCommand parámetro como este

powershell.exe -EncodedCommand JgAgACcAQwA6AFwAVQBzAGUAcgBzAFwAdABlAHMAdABcAEQAbwBjAHUAbQBlAG4AdABzAFwAVABlAHMAdAAgAFMAcABhAGMAZQBcAHQAZQBzAHQALgBwAHMAMQAnAA== -ExecutionPolicy Bypass

Prueba esto:

PS C:> & "C:UserstestDocumentstestline spacePS Scripttest"

En sus ejemplos, está mezclando citas y citas dobles sin ningún motivo.

IF EXIST "C:UserstestDocumentstestline spacePS Scripttest.ps1" (
  powershell -ExecutionPolicy Unrestricted -File "C:UserstestDocumentstestline spacePS Scripttest.ps1"
)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *