4

「実行」を介してWindows側に引数を渡す際に問題が発生しています

実演すると、次のようになります。

run C:\foo.exe /BUILD

'/BUILD' パラメーターが実行可能ファイルに渡されることはありません。これを回避する方法を知っている人はいますか?

ありがとう!

4

4 に答える 4

5

正しい答えは、多くの調査の結果、これをバッチファイルに渡すことでした-「実行」で単一のコマンドのみを実行し、すべての実行をバッチファイルに渡します。

于 2009-02-09T21:54:58.447 に答える
0

foo.exe は何をすることになっているのでしょうか? /build コマンド ライン オプションが指定されていないことはどのようにわかりますか? そうすれば、次のようinfo runになります。

Windows  programs  are  either  GUI  programs or console programs. When
started console  programs  will  either  attach  to an existing console
or  create a new one. GUI programs can  never attach to an exiting con-
sole. There is no way to attach to an existing console but hide  it  if
started as GUI program.

run  will  do this for you. It works  as intermediate and starts a pro-
gram but makes the console window hidden.

最後の部分が重要です。コンソール ウィンドウを非表示にしています。したがって、次のように表示されます。

</cygdrive/d/sandbox> $ run ls -la
</cygdrive/d/sandbox> $

しかし、代わりにこれを実行すると、別のものが表示されます。

</cygdrive/d/sandbox> $ cat foo.lst
cat: foo.lst: No such file or directory
</cygdrive/d/sandbox> $ run ls -la >foo.lst
</cygdrive/d/sandbox> $
</cygdrive/d/sandbox> $ cat foo.lst
total 9272280
drwx------+ 15 jcasadonte     ????????             0 Feb  7 10:39 .
drwxrwxr-x+ 14 Administrators SYSTEM               0 Feb  7 00:44 ..
-rwx------+  1 jcasadonte     ????????         26300 Apr 10  2006 ATT01779.jpg
[...etc...]

最初のコマンドは実行されていますが、存在しないコンソール ウィンドウに出力されています。

注:あなたがやろうとしているように見えるので、DOSコマンドインタープリターで例を実行したでしょうが、XP cmd.exeは「>」を正しく処理せず、run代わりにに渡しlsます。

于 2009-02-07T15:41:40.597 に答える
0

私はCygwinをあまり使用しませんが、おそらく:

run 'c:\foo.exe /BUILD'

(一重引用符ではない場合、二重引用符でよいでしょうか?)

于 2009-02-05T17:31:07.367 に答える
0

次のように引用符で囲みましたか?

run "C:\foo.exe /BUILD"

シェルが引数の所有者を混乱させているのではないかと思います。つまり、「実行」は /BUILD を渡しているのではなく、消費しています。

于 2009-02-05T17:33:17.877 に答える