14

私はこの回答のスタックオーバーフローの回答を読みましたが、途中でそこにたどり着きました。これが私がしなければならないことです。

次のコマンドを実行します。

"c:\myexe.exe <c:\Users\Me\myanswerfile.txt"

PowerShellスクリプト内から直接実行すると

&'c:\myexe.exe <c:\Users\Me\myanswerfile.txt'

次のエラーが表示されます。

The term 'C:\myexe.exe <c:\Users\Me\myanswerfile.txt' 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, verif that the path is correct and try again.

今、元のコマンドを $cmd という変数に配置してから、

「<」を $cmd 変数に追加すると、コマンドは最初のエラーと同様のエラーで失敗します。

私は困惑しています。助言がありますか?

4

2 に答える 2

26

プログラムを実行する場合は、名前とパラメーターを入力するだけです。

notepad.exe C:\devmy\hi.txt

exeを実行し、stdinをその例にリダイレクトする場合は、次を使用します。

Get-Content c:devmy\hi.txt | yourexe.exe 

プログラムへのフルパスを指定する必要がある場合は、アンパサンドと引用符を使用する必要があります。そうしないと、PowerShellはプレーンな文字列を定義していると見なします。

&"C:\Program Files (x86)\Notepad++\notepad++.exe"
于 2012-09-18T14:17:50.227 に答える
7

単に&演算子を使用する

& "Program\path\program.exe" "arg1" "arg2" ....
于 2014-10-16T15:34:08.140 に答える