Tengo un archivo por lotes que toma cualquier número de argumentos (lista de archivos) y ejecuta un script de PowerShell con la estructura siguiente comando:
"%POWERSHELL%" -Command "%SCRIPT%" %*
%POWERSHELL%
es el camino a PowerShell.exe
y %SCRIPT%
es mi script de PowerShell que interpreta que recibe como %*
$args
. El problema es que si paso algo como el nombre de archivo test$file.name
, PowerShell recibe test.name
, presumiblemente porque $file
se interpreta como una variable vacía.
¿Hay alguna manera de evitar cada argumento con comillas simples o repeticiones del script por lotes, o de lo contrario lidiar con esto?
Funciona como un encanto - ¡No tenía ni idea de la notación de dos puntos! –
¿Funcionaría la zanahoria '^' también? o es la cita de la izquierda un personaje especial en powershell? –
@ hayk.mart: '% VAR: S1 = S2%' reemplaza las cadenas en las variables, ver 'help set' para más detalles. –