Windowsコマンドプロンプトからアプリケーションを起動しますか?


3

.exeによって参照される場所にシンボリックにファイルを含めるLinuxの方法論はあります%PATH%か?このプロセスはLinuxでは問題ないように見えますが、LinuxではなくmklinkWindowsで 同様のアクションを実行しようとln -sすると、元のアプリケーションのルートディレクトリ(バイナリなど)にある依存関係に関する問題が常に発生するようです。アプリケーションランチャーをPATHの場所に追加して、簡単なfirefoxコマンドでFirefoxを起動するなど、コマンドプロンプトから便利に実行できるようにする具体的な例を知っていますか?


2
おそらくWindowsの方法論はありますか?また、1つの問題はDLL searhの順序msdn.microsoft.com/en-us/library/windows/desktop/…である可能性があります。Windows では、共有ライブラリは多くの場合バイナリに関連しているためです。
n611x007

回答:


2

your_link_name.cmd次の内容で、リンクを配置するファイルを作成します。

start /D c:/path/to/working/directory c:/path/to/working/directory/example.exe %*

%* 与えられた引数を渡す必要があります。

プロセスが終了するまで待つ必要がある場合はpsexec、sysinternals(現在はMicrosoft)を使用したほうがよいでしょう。ホームページを参照してください。この点でstart + cmdにバグがあることを覚えています。

psexec -w c:/working_dir c:/working_dir/example.exe %*

引数では、ファイルパスはターゲットシステム上の絶対パスである必要があります。


1
注:/Windowsではパスセパレータとして機能しますが、一部の実行可能ファイルはこれを認識せず、受け入れません。またUNC、一部のリソースを含むパスでは常に機能するとは限りません。ただし、psexecおよびstart自体は問題ありません。
n611x007

私はどうなるcd(作業ディレクトリが適用される場合)、コマンドの前にあり、a pause(必要な場合も)の後に。
ハビエル

1
@Javier /Dためのstartコマンド、および-wのためのpsexecコマンドは、ディレクトリを変更するための世話をします。だから、cd不要です。についてはpause、ウィンドウをダブルクリックして手動で実行し、出力を表示するのに役立ちます。ただし、スクリプトまたはcmdからは、スクリプトを停止できます。手動でも、トータルコマンダーのプロンプトから実行して、追加|moreまたは2>&1 |more終了することをお勧めします。後者には標準エラーストリームも表示されます。(実際には|less、unxutilsから使用しています)。cdを使用すると、.cmdを新しい行で@exit /b %errorlevel%終了して終了コードを返すことができます。
n611x007

1
@Javierも、startコマンド用に新しい2番目のウィンドウを作成し、2番目のウィンドウが終了するまで最初のウィンドウで待機しないと思います。そのため、この場合、行うのpauseは難しいです。
n611x007

私は慣れていて.bat、使っていませんstart。かなり古くて初歩的なものです。笑
ハビエル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.