3

[コンテキスト:ここここで 大まかに説明されているように、相対的な「開始」パスを使用して .bat ファイルへのショートカットを作成しようとしています。]

cmd.exeスイッチをサポートし/cます。ドキュメントによると、これにより「コマンドを実行してから終了する」必要があります。

ただし、コマンドが.batファイルの場合、スイッチは無視されるようです。たとえば、次のターゲットを使用してショートカットを作成した場合 (通常の非バット コマンドへ):

C:\Windows\System32\cmd.exe /c "START /d C:\temp\ notepad.exe test.txt"

すべてが期待どおりに機能します。メモ帳が開き、コンソール (シェル) が消えます。ただし、上記のコマンドを代わりに .bat ファイルに置き換えると、次のようになります。

C:\Windows\System32\cmd.exe /c "START /d C:\temp\ C:\test.bat"

(ここtest.batには " " のみが含まれますnotepad.exe test.txt) メモ帳は以前と同じように開きますが、コンソールは不要な友達のように残ります。なんで?さらに言えば、どうすればそれをなくすことができますか?

更新:このソリューションのように wscript を使用できることはわかっていますが、カスタム アイコンを使用するオプションが失われます (デフォルトの .vbs アイコンに固執しています)。

4

3 に答える 3

4

このstartコマンドは、バッチファイルの新しいプロセスを開始します。その後、元cmd.exeのプロセスは終了しますが、notepad.exeが終了するのを待機しているため、新しいプロセスは残ります。

batファイルの内容を次のように変更します。

start "" notepad.exe test.txt

その後、バッチファイルはメモ帳が終了するのを待たずに実行を続行します。

試してみるもう1つのこと:

C:\Windows\System32\cmd.exe /c "START /d C:\temp\ C:\test.bat & exit"

核となるオプションは、選択した(コンパイルされた)言語で.batファイルを起動して終了する小さなプログラムを作成することです。次に、カスタムアイコンを付けて、好きなように動作させることができます。

于 2013-03-05T22:21:18.620 に答える
1

バッチの代わりに、http: //autoitscript.com から Autoit を参照することもできます。- Run() コマンドは、この種のことをより予測しやすく行うことができます。実行可能ファイルを作成するため、ショートカットから直接リンクできます。もちろん、別のユーザーとして実行したり、遅延を挿入したり、エラーを処理したりするなど、バッチでは難しいこともできます。

完全なキットは必要ありません。ダウンロードの Aut2EXE フォルダーだけで十分です。

ところで、AV の誤検出につながるため、UPX 圧縮なしで exe をビルドしてください。

于 2013-03-05T22:34:12.900 に答える