web-dev-qa-db-ja.com

PowershellスクリプトからBATファイルを実行する最も安全な方法

Batファイルを直接実行するためのPowerShellスクリプトを取得できません。たとえば、これはコマンドラインで機能します。

.\\my-app\my-fle.bat

このコマンドをスクリプトに追加すると、次のように出力されます。

The term '.\\my-app\my-file.bat' is not recognized as the 
name of a cmdlet, function, script file, or operable program. 
Check the spelling of the name, or if a path was included, 
verify that the path is correct and try again.

私も次のことを試しましたが、同じ結果が得られました。

& .\\my-app\my-fle.bat
& ".\\my-app\my-fle.bat"
\my-app\my-fle.bat
& \my-app\my-fle.bat
& "\my-app\my-fle.bat"

注:バッチの成功を確認する必要があるため、lastexitcodeを返す必要があります。

57
cmcginty
cmd.exe /c '\my-app\my-file.bat'
78
cmcginty

.batを実行し、最後の終了コードにアクセスするには、次のように実行します。

 & .\my-app\my-fle.bat
27
Rynant

これを試してください、あなたのドットソースは少しずれていました。編集して、OPのlastexitcodeビットを追加します。

$A = Start-Process -FilePath .\my-app\my-fle.bat -Wait -passthru;$a.ExitCode

非表示のバッチに-WindowStyle Hiddenを追加します。

23
Knuckle-Dragger