何もしないWindows exeはありますか?


47

Windowsインストールの一部として「noop」風のexeがどこかにありますか?いくつかのバッチジョブとスケジュールされたタスクを準備しています。いくつかの理由で、何もしない実行可能ファイルを参照したいです。つまり、表示ウィンドウなしで起動し、すぐに終了します。

このような実行可能ファイルは、通常のWindowsインストールのどこかに存在しますか?またはどうやって近くに来ることができますか?Windowsにまだ含まれていないものに依存する必要はありません。


2
観察から:svchost.exe何も開かない。
ta.speot.is

@ todda.speot.isを完全な回答として含める必要があります。
-DuckMaestro

2
外部(実行可能)ファイルである必要がありましたか?そうでない場合は、remコマンドが機能している可能性があります(そして、バッチファイルのどこで使用されているか、場合によっては::バリアントでも)。
Synetech

回答:


51

以下を使用できますrundll32

  • コンソールウィンドウなし
  • 副作用なし
  • わずか44 KB
  • 引数は不要です
  • すべての最近のWindowsバージョン(XP、Vista、7)で動作し、おそらくすべてのNTベースのシステムで動作します。

2
なぜそこにあるのですか?
ネイサン

6
@Nathan適切な引数を使用して、DLL内の関数を呼び出すことができます
アンドレア

右。たとえば、print.exe渡されたパラメーターを単純に出力する単純なプログラムを想像してください。引数がなければ何もしませんが、引数を与えると何かができます> print foobar
Synetech

@Andreaは、引数が与えられない限り、何もしません。それは彼の要件ごとに十分なものではありませんが。
-barlop

3
おそらく、実際には何もしないわけではありません。
アンディテラ14年

36

Windowsインストールの一部として「noop」風のexeがどこかにありますか?

具体的には、何も何もしないことを意図したプログラムを意味しますか?はいといいえ。いいえ、デフォルトではWindowsには含まれていませんが、自分で作成する機能は含まれています。


オプション1

notepad.exeを実行し、次の行を入力して、名前を付けて保存しますC:\ret.scr(空白行を忘れないでください)。

a
ret

rcx
1
n ret.com
w
q

次のコマンドを使用して、コマンドプロンプト(cmd.exe)でdebug.exeを使用してコンパイルします。

C:\> debug < ret.scr

ret.comこれで、バッチファイルで使用できるプログラム(C:\)が作成されました。このプログラムはまったく何もしません(それが重要な場合は、終了以外)。

debug64ビットシステムには含まれていません。


オプション2

Vista以降では、.NETフレームワークがデフォルトで含まれているため.exe、C#(64ビット互換)を使用してネイティブのWindowsを何もしないこともできます。

notepad.exeを実行し、次の行を入力して保存しますC:\ret.cs

class rte
{
   static void Main() {
   }
}

次のコマンドを使用して、コマンドプロンプト(cmd.exe)でcsc.exeでコンパイルします。

C:\> csc ret.cs

ret.exeバッチファイルで使用できる別のプログラムが(C:\に)ありますが、これは何も返しません。


2
くそーブリリアント..誰もがそのためにあなたを賛成する必要があります..私は常にアセンブリ言語を学びたいと思った。ここであなたの答えにつまずいたことがうれしいです。将来の趣味のための飼料かもしれません!
barlop

12
私にとっては、csc.exe私の道にはありませんでしたが、それは次の場所にありましたC:\Windows\Microsoft.NET\Framework\v3.5\csc.exe
-AlcubierreDrive

あなたのcsc.exeのようなmainメソッドだけを持っているCプログラムからコンパイルされたEXEはどうですか?それはデバッグで書いたプログラムよりもはるかに多くのことをしていますか?たとえば、そのプログラムにははるかに多くのアセンブリ言語がありますか?
-barlop

1
@barlop、通常ははい。空のmain関数は、それがそうであるように見えるか、少なくともa にすぎないはずですret、そのようなプログラムを逆アセンブラー(または16進エディターでも)で開くと、それよりもはるかに大きいことがわかります。通常、すべての種類のセグメント(コード、データなど)をセットアップし、スタックとヒープを準備します。もちろん、実際に使用しない場合でも、すべての種類の関数と文字列をインポートします。
Synetech

インストールキット用の古い外部サポートソフトウェアを置き換えるためにこれが必要でした。DirectXやVCruntimesなど、そのソフトウェアが不要になったパッケージサイズを縮小しました。また、コンパイラーがない場合やインストールする場合は、tutorialspoint.com / codingground.htmのオンラインコンパイラーを使用し、コンパイル後にプロジェクトをダウンロードすると、アーカイブ内にexeが含まれます。
JasonXA

10

Windowsに含まれる(私が知っている)プログラムは、実行されるとすぐに終了しません(少なくとも意図的に)。

ただし、Windows Vista以降には、timeout.exeユーティリティがあります。Timeout.exe指定された秒数待機してから終了します。例えば:

C:\>timeout /t 0 > nul:

timeout.exe0秒待機する設定は、すぐに終了するEXEに到達するのとほぼ同じです。


3
Opが望んでいることを行うには、「timeout / t 0> nul:」のようなタイムアウトを使用します。これは、出力なしでタイムアウトコマンドを実行し、すぐに終了します。
ミスタージェイティー

@misterjaytee良いアイデア。
アンドリューランバート

@Tom:コンソールウィンドウ。特に実行しない限り、コマンドプロンプトは開きませんcmd.exe
悲しみ

@grawity:タスクスケジューラは、コマンドを実行するためのコマンドプロセッサを必要とするため、コンソールウィンドウが短時間表示されます。
タマラWijsman

@TomWijsman試してみてください。新しいウィンドウを開くことができません。
アンドリューランバート

4

パラメータなしでは、「C:\ Windows \ hh.exe」(Microsoft®HTML Help Executable)は何も実行せず、Windowsバージョンに含まれていると思います。


2

wscript 引数なしではスクリプトはまったく実行されず、「GUI」実行可能ファイルです(コンソールは開きません)。


2
引数なしでwscriptを実行すると、「Windows Script Host Settings」が表示されます。Windows 7 64ビット。実行wscript /bは動作するようです。
DuckMaestro

2

私が試したrndll32.exeし、hh.exeその後の両方は、%ERRORLEVEL%と変化させませんでした。これは、最後の実行可能ファイルが成功したかどうかを示す環境変数です。UNIXのリターンコードのように機能します。

以下の私のnoopコマンドは、%ERRORLEVEL%をゼロに設定します。

cd %CD%

作業ディレクトリを現在のディレクトリに変更するだけです。


0

このコマンドecho offは、バッチ(.BAT)ファイル内では何もしません。実行可能ファイルではありませんが、Windowsの内部コマンドです。


7
実際にそれ何かをし、エコーをオフにします。あなたはそれがオフに設定されている場合、それは何のように見えるかもしれませんが、あなたがあれば欲しいエコー、それは確かに何かを行います。
Synetech

6
およびREMのように、それはexeファイルのウィンドウではありません
barlop

0

単純な「Hello World」C ++プログラムをコンパイルして、すぐに終了する単純なexeを作成します。
次のコードをa.cppなどの名前でテキストファイルに保存します。

#include<iostream>
int main()
{ std::cout<<"Hello World";
return 0;
}

次に、Windows 7のためのMinGWのような最新のC ++コンパイラでコンパイル
PowerShellのか、コマンドプロンプトで次のコマンドを実行し、MinGWのの場合:g++ path\a.cpp(あなたが++バイナリの場所グラムの環境変数PATHを設定しているか、あなたはグラムで++バイナリディレクトリであることを仮定すると、すなわちC :\ mingw \ bin(デフォルト)。コマンドの実行後、Hello Worldを表示して終了するa.exeを取得します。ダブルクリックして確認... cmdウィンドウが表示され、すぐに消えます。コマンドラインにアクセスすると、Hello Worldが表示され、CLIプロンプトに戻ります。
次に、このa.exeをsystem32またはWindows内部のどこにでも移動できます。Windowsのインストールディスクに展開することもできます。


2
C ++コンパイラがWindowsに含まれていないことは確かです。
Synetech

6
「Hello World」を印刷してもほとんど何もしません。
キーストンプソン

@Synetechコンパイルは長いCPUアーキテクチャが同じであるよう..として一度だけ必要とされる
アップルII

1
... @KeithThompson私はそれがBATアルゴリズムとの干渉とは思わないが、それは本当に重要ならば、ASCIIのヌル文字でのHello Worldを置き換える
アップルII

5
> BATアルゴリズムと干渉することはないと思いますが、本当に重要な場合は、Hello WorldをASCIIヌル文字に置き換えるか、単に印刷コマンドを完全に削除してください。
Synetech

0

あなたはそのようにCでノーオペレーションを書くことができます

void main() {

}

そして、それを.exeファイルにコンパイルします。たとえば、Visual Studioがインストールされている場合、メモ帳を開いてそのスニペットを貼り付け、noop.cとして保存し、コマンドプロンプトで使用するcl noop.cnoop.exe、同じフォルダーにファイルが出力されます。

最初にMicrosoft Visual Studio X.0フォルダを参照し、コマンドプロンプトからProgram Files実行する必要がある場合とそうでない場合がありvcvarsall.batます。


「Windowsインストールの一部」という質問の一部を見逃しました。また、セミコロンは冗長です。
Synetech

-1

このツールの主な目的ではありませんが、WuInstallの/ donothingオプションを使用できます-返されるリターンコードも指定できます-http://help.wuinstall.comを参照してください


XPまたは7には含まれていないようです。サーバーバージョンに含まれていますか?
Synetech
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.