Tôi đang viết kịch bản lệnh PowerShell chung để thực hiện triển khai trên các máy từ xa. Tôi đã trúng một vấn đề tôi không thể bị tàn phá, và vấn đề này là với các thông số với dấu ngoặc kép trong Scriptblock đi ngang qua ArgumentListCác tham số có dấu ngoặc kép không được chuyển tới Scriptblock bởi ArgumentList
Tôi có một cái gì đó như thế này:
$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
}
Tôi đã thêm dấu ngoặc kép trong $ deploymentPackages. Và vẫn còn tôi nhận được lệnh của tôi thực hiện remotly như thế này (trong đó tất nhiên không):
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
trong khi con đường thực hiện đúng đắn nên là:
D:\some path\Command.exe -package:"package - three - external" -action:doit
mà không cần dấu ngoặc kép quanh gói - một - bên ngoài mà lộn xộn up everythig
Làm thế nào để khắc phục vấn đề này, bởi vì tôi đã kiểm tra số lượng các giải pháp và không phải của họ làm việc.
Cảm ơn bạn đã trợ giúp trước!
Giải pháp này làm việc một cách hoàn hảo. Cảm ơn! – Midi