web-dev-qa-db-ja.com

バッチファイル(.bat)を使用したPowerShellスクリプトの実行

現在、これはVMware vSpherePowerCLIコマンドプロンプトを起動するための私のパスです。バッチファイルを使用してsample.ps1スクリプトを自動的に実行したいと思います。 sample.ps1をこのパスに組み込み、バッチファイルを作成するにはどうすればよいですか?

C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe 
 -psc "C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\vim.psc1" -noe -c 
 ". \"C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1\""
2
user448402

Initialize-PowerCLIEnvironment.ps1を呼び出すコマンドの終わりを置き換え、それをsample.ps1ファイルへのパスに置き換えることをお勧めします。

ほぼ確実に、サンプルファイルの最初の行をInitialize-PowerCLIEnvironment.ps1への元の参照にする必要があります。これにより、初期化コード(ほとんどの場合関数/コマンドレット定義)が、それに依存する可能性のあるコードの前に実行されます。 。

たとえば、sample.ps1ファイルの内容は次のようになります。

# source vSphere PowerCLI Environment first
. "C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1"
# custom code follows
$me = "Hello, vSphere and PowerCLI!!!"
2
Goyuix
echo off

Title,Sample Script &color 9e

for /f "usebackq delims=$" %%a in (`cd`) do (
  set SCRIPTDIR=%%a
)

(Set ScriptFile=%SCRIPTDIR%\Sample.ps1)

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -psc "C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\vim.psc1" -c ". \"C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1\";%ScriptFile%"
1
Farhad