起動時にプログラムにコマンドライン引数を渡そうとしていますか? 私は今、まさにこれを行う何かに取り組んでいます、そして、私は思ったよりもはるかに簡単でした。 私は、コマンドラインに入り、その後、私のアプリケーションの起動を
C:\folder\app.exe/xC:\folder\file.txt
を入力し、指定した名前で指定したディレクトリにファイルを作成する場合。
私は(私はこれは、セッション内でさらにたくさんのようなコマンドを持っているリモートマシン上でPowerShellスクリプトを介してこれをやってみたかった、と私が行うために必要なすべてが
$s = New-PSSession -computername NAME -credential LOGIN
Invoke-Command -session $s -scriptblock {C:\folder\app.exe /xC:\folder\file.txt}
Remove-PSSession $s
を入れたことを考え出しました 実行可能ファイルとコマンドライン引数の間のスペースに注意してください。 それは私にとってはうまくいくが、アプリケーションの仕組みや、引数を渡す方法さえわからない。
*私はまた、あなたのファイルのパスにスペースが含まれている場合は、引用符を必要とする
C:\folder\app.exe /x"\\LocalPC\DATA (C)\localfolder\localfile.txt"
にスクリプトブロックを変更することにより、自分のアプリケーションが戻って自分のローカルコンピュータにファイルをプッシュすることができます。
EDIT:実際には、これはアプリケーションをサービスなどとして起動するPowershellに愚かな問題をもたらしたので、私は検索をいくつか行い、リモートコンピュータ上でCMDを呼び出してコマンドを実行できることを理解しました。 このようにして、リモートマシンのCMDウィンドウにコマンドを入力したかのようにコマンドが正確に実行されます。スクリプトブロック内のコマンドを二重引用符で囲み、その前にcmd.exe/Cを置きます。このように:
cmd.exe /C "C:\folder\app.exe/xC:\folder\file.txt"
これは私が最近しているすべての問題を解決しました。
編集編集: もっと問題が発生している可能性があります。
start-process -filepath C:\folder\app.exe -argumentlist "/xC:\folder\file.txt"
これは、リモートプロセスが終了するのを待っている端末ウィンドウをハングアップしません。 プロセスを終了させる方法がないか確認してください。 (私は、別の引数のコーディングを必要としませんでした)
ありがとう、すばやい応答。何らかの理由で、私がそれを試してみると、手動で実行した場合に動作する拡張コマンドを出力するようになりますが、実際には実行されていません。私はそれが将来の使用のために予約された文字だと言ったように、 "&"を取り除かなければならなかった。 – gregs
@gregsテストするために私のマシンでリモーティングを有効にしなければなりませんでした。私はlocalhostの引数を送信する単純なpingテストにコマンドを変更しました。上記の私のために成功する。 –
私は解決策ではなく、解決策を見つけたかもしれません。この行は、ping.exeと "localhost"を引数として使用すると動作しますが、パスにスペースがあるため、実行可能パスの前後に引用符を付ける必要があります。私がそれをするとき、それは単に引用符で私の文字列を私に戻ってエコーするが、私はそれが動作するとは思わない。 – gregs