2013-05-08 15 views
26

cmdコマンドラインでPowerShellスクリプトを実行しようとしています。誰かが私に例を与えると、それが動作します:CMDでPowerShellを実行する方法

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

しかし、問題は、私のPowerShellスクリプトは、入力パラメータので、私が試したが、動作しませんされています

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

エラーは次のとおりです。

用語 'D:\作業\ SQLExecutor.ps1 -gettedServerName "MY-PC"' コマンドレット、関数の名前として認識されない、

お待ちください!ありがとう!

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

ファイルのパラメータと位置パラメータ使用して構文を容易にすることができる別のオプション:

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

-noexitを使用してもよろしいですか?これは、スクリプトが完了するとシェルがハングして、CMD内のバッチファイルの実行をブロックする可能性があることを意味します。 – x0n

答えて

51

あなたはファイルパスから引数を区切るために必要

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

ありがとうございます! – XiaoYao

4

だけで試してみてください。

0

Shay Levyの正解に以下を追加したいと思います。 あなたはPowerShellスクリプトを起動するための小さなバッチスクリプトrun.cmdを作成する場合は、あなたの人生を容易にすることができます。

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

をあなたにSQLExecutor.ps1と同じパスに、今からそれを入れてrun.cmdに単にダブルクリックして実行することができます。コマンドライン引数が必要な場合は、単にpowershellスクリプト(run.cmdバッチ内)に%1 ... %9として渡します。

関連する問題