Yürütülen bir Powershell Komut bir Değişken depolanan
Yapı ve güç kabuğunda bir değişken depolanan bir komut var. Bu komut eğer host yazıp ve standart cmd.exe bir pencereye kopyala yaparsam bir işe yarıyor.
Nasıl benim komut dosyası içinde bu komutu çalıştırmak mı?
Çağırma komutu birkaç kombinasyon denedim veya ifade çağırmak hiç şans.
Bu değişken yaptım o kadar
$cmd1= $arcprg $arcdir "\" $site1 "-" $hst "-" $yesterday ".zip " $logpath1 "u_ex" $yesterday ".log"
Bu değişkeni de ekrana yazdırılır gibi görünür:
7z.exe a -tzip c:\arc_logs\site-host-at-web1-100827.zip c:\inetpub\logs\logfiles\w3svc1\u_ex100827.log
CEVAP
Burada iki değişken ile Invoke-Expression
olmadan ama henüz başka bir yoludur
(komut:string ve parametreleri:dizi). Benim için gayet iyi çalışıyor. Varsayalım
7z.exe
sistem yolunda.
$cmd = '7z.exe'
$prm = 'a', '-tzip', 'c:\temp\with space\test1.zip', 'C:\TEMP\with space\changelog'
& $cmd $prm
Komut (7z.exe bilinen ve sadece parametreleri değişken olursa, o zaman bunu yapacağız
$prm = 'a', '-tzip', 'c:\temp\with space\test1.zip', 'C:\TEMP\with space\changelog'
& 7z.exe $prm
BTW benim için de işe yarıyor, örneğin bu işleri
$cmd = '& 7z.exe a -tzip "c:\temp\with space\test2.zip" "C:\TEMP\with space\changelog"'
Invoke-Expression $cmd
Daha kolay olduğu için P. S. ben genellikle parametre bir dizi ile bu yolu tercih
Invoke-Expression
için bir ifade oluşturmak için daha programlı olarak oluşturun.
Nasıl bir PowerShell komut dosyası içi...
Nasıl şu anda yürütülen komut dosyası ...
Nasıl nesne yönelimli programlamada iç...
Bash komut dosyası zaman damgası değiş...
Nasıl boru hattı girişi kabul eden bir...