iletilen dizeye exisiting aktarılıyorsa, bir string argümanı olan bir ps1 dosyası çalıştırıyorum. Dize argümanı kendisi içinde $ içerir. Hangi belirli bir alfabe ile birleştirdikten sonra onu bir değişken olarak düşünüyor.Invoke-Expression komutu,
Açıklama:
$variableWithDolar = 'Test$Var'
$inputString = "Testing with " + "`'$variableWithDolar`'"
$inputString = '"' + $inputString + '"'
$scriptPath="C:\test\PrintArg.ps1"
Invoke-Expression -Command "& `"$scriptPath`" $inputString"
İşte PrintArg.ps1 sadece dize argüman alıp yazdırmak bir powershell komut dosyasıdır.
Beklenen Çıktı: "Test $ Var Test Etme" Gerçek Çıktı: "Testi ile Test"
boş değişken olarak $ Var düşünüyor gibi.
Herkes, Invoke-Expression ile beklenen çıktımı nasıl alabilirim yardım edebilir.
NEDEN: Tam bir açıklama belgelerine kontrol Poweshell içinde
alıntılar yanıltıcı olabilir: ilk satırda tek tırnak çift tırnak değiştirin ve son satırında $ inputString tek tırnak eklemek En başta 'Invoke-İfade' kullanıyor musunuz? – PetSerAl
@PetSerAl Bu argüman –
'& $ scriptPath $ inputString' ile bazı komut dosyalarını çalıştırmam gerektiğinden. NEDEN “İfade Et” ifadesi? – PetSerAl