2013-05-08 27 views
26

cmd komut satırında bir PowerShell komut dosyasını çalıştırmaya çalışıyorum. Birisi bana bir örnek verebilir ve çalışır:CMD'de PowerShell nasıl çalıştırılır

powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'" 

Ama sorun denedim yani benim PowerShell komut girişi parametresi vardır ama çalışmıyor:

powershell.exe -noexit "& 'D:\Work\SQLExecutor.ps1 -gettedServerName "MY-PC" ' " 

hatadır:

terimi 'D: \ Work \ SQLExecutor.ps1 -gettedServerName "MY-PC"' bir cmdlet, işlev adı olarak tanınmayan,

Yardım bekliyorum! Teşekkürler!

powershell.exe -noexit "& 'D:\Work\SQLExecutor.ps1 ' -gettedServerName 'MY-PC'" 

Dosya parametresi ve konumsal parametreler kullanılarak sözdizimi hafifletmek diğer bir seçenek:

powershell.exe -noexit -file "D:\Work\SQLExecutor.ps1" "MY-PC" 
+2

-noexit'i kullanmak istediğinizden emin misiniz? Bu, komut dosyanız bittiğinde kabuğun takılacağı, muhtemelen CMD'de toplu iş dosyasının yürütülmesini engelleyebileceği anlamına gelir. – x0n

cevap

51

dosya yolundan bağımsız değişkenleri ayırmak gerekir

powershell.exe -noexit D:\Work\SQLExecutor.ps1 -gettedServerName "MY-PC" 
+0

Çok teşekkür ederim! – XiaoYao

4

sadece denemek:

0

Aşağıdakileri Shay Levy'nin doğru yanıtına eklemek istiyorum:

@echo off & setlocal 
set batchPath=%~dp0 
powershell.exe -noexit -file "%batchPath%SQLExecutor.ps1" "MY-PC" 

SQLExecutor.ps1 aynı yolu koy ve şu andan itibaren size run.cmd üzerine basitçe çift tıklayarak çalıştırabilirsiniz tarih: Eğer başlatmak için powershell komut biraz toplu komut dosyası run.cmd oluşturmak eğer hayatınızı kolaylaştıracak yapabilirsiniz . Komut satırı argümanlarına ihtiyacınız varsa, bunları powershell betiğine (run.cmd batch'in içinde) %1 ... %9 olarak iletin.