Sto scrivendo script PowerShell generico per eseguire distribuzioni su macchine remote. Ho colpito un problema che non posso invaso, e questo problema è con parametri con le doppie virgolette in scriptblock passavano ArgumentListI parametri con virgolette non vengono passati correttamente a Scriptblock da ArgumentList
ho qualcosa di simile a questo:
$remoteAddress = "some-pc"
$deploymentCommand = "D:\some path\Command.exe"
$deploymentPackages = @(`"“package - one - external"`", `"“package - two - external"`", `"“package - three - internal"`")
foreach ($deploymentPackage in $deploymentPackages)
{
invoke-command -ComputerName $remoteAddress -ScriptBlock { param ($deployCmd, $deployPackage) & $deployCmd -package:$deployPackage -action:doit } -ArgumentList $deploymentCommand,$deploymentPackage
}
ho aggiunto le virgolette doppie in $ deploymentPackages. E ancora mi sto mio comando eseguito remotly come questo (che ovviamente non):
D:\some path\Command.exe -package:package - one - external -action:doit
D:\some path\Command.exe -package:package - two - external -action:doit
D:\some path\Command.exe -package:package - three - external -action:doit
mentre corretto percorso di esecuzione dovrebbe essere:
D:\some path\Command.exe -package:"package - three - external" -action:doit
senza virgolette intorno pacchetto - uno - esterno che pasticcio up everystig
Come superare questo problema, perché ho testato il numero di soluzioni e non di esse ha funzionato.
Grazie per l'aiuto in anticipo!
Questa soluzione ha funzionato perfettamente. Grazie! – Midi