Quero encaminhar %*
para um script do PowerShell a partir de um script em lote, que já funciona mais ou menos. O único problema é que não consigo encaminhar argumentos com espaços corretamente.
Exemplo.bat..
@echo off
set cwd=%~dp0
set argv=%*
powershell -NoProfile -ExecutionPolicy Bypass -Command "& '%cwd%Example.ps1' %argv%"
Exemplo.ps1..
Param(
$Message
)
If (!$Message)
{
$Message = "Hello!!!"
}
Write-Host $Message
Eu consigo fazer isso ./Example.bat Oh
muito bem, o que imprime Oh
. No entanto, ./Example.bat "Oh no"
só imprime Oh
também. ./Example "'Oh no'"
funciona, mas não é limpo, pois o uso dos scripts não é mais idêntico, o que significa que qualquer uso dele se torna fortemente acoplado, o que eu não quero.