Gibt es irgendwo als Teil der Windows-Installation eine „noop“-ähnliche EXE? Ich bereite einige Batch-Jobs und geplante Aufgaben vor und möchte aus mehreren Gründen auf eine ausführbare Datei verweisen, die nichts tut – das heißt, ohne sichtbares Fenster gestartet und sofort beendet wird.
Gibt es eine solche ausführbare Datei irgendwo in der normalen Windows-Installation? Oder wie kann ich an sie herankommen? Ich möchte nicht von etwas abhängig sein, das nicht bereits in Windows enthalten ist.
Antwort1
Sie können verwenden rundll32
:
- Kein Konsolenfenster
- Keine Nebenwirkungen
- Nur 44 KB
- Keine Argumente erforderlich
- Funktioniert auf jeder aktuellen Windows-Version (XP, Vista, 7) und wahrscheinlich auf jedem NT-basierten System.
Antwort2
Gibt es irgendwo als Teil der Windows-Installation eine „noop“-ähnliche EXE?
Meinen Sie damit konkret ein Programm, das nichts anderes tun soll? Ja und nein. Nein, da Windows standardmäßig keins mitliefert, aber Sie haben die Möglichkeit, selbst eins zu erstellen.
Option 1
Laufennotepad.exe, geben Sie die folgenden Zeilen ein und speichern Sie es unter C:\ret.scr
(vergessen Sie die Leerzeile nicht):
a
ret
rcx
1
n ret.com
w
q
Kompilieren Sie es mitdebug.exein der Eingabeaufforderung (cmd.exe) mit folgendem Befehl:
C:\> debug < ret.scr
Sie haben jetzt ein Programm ret.com
(in C:\), das in Batchdateien verwendet werden kann und absolut nichts tut (also, außer beenden, falls das zählt).
Notiz: debug
ist auf 64-Bit-Systemen nicht enthalten.
Option 2
In Vista und höher ist das .NET-Framework standardmäßig enthalten, daher können Sie auch eine native, Windows-Nichtstun-Funktion .exe
mit C# erstellen (64-Bit-kompatibel):
Laufennotepad.exeund geben Sie die folgenden Zeilen ein und speichern Sie sie unter C:\ret.cs
:
class ret
{
static void Main() {
}
}
Kompilieren Sie es mitcsc.exein der Eingabeaufforderung (cmd.exe) mit dem folgenden Befehl:
C:\> csc ret.cs /target:winexe
Sie haben jetzt ein weiteres Programm ret.exe
(in C:\), das in Batchdateien verwendet werden kann und nichts anderes tut, als zurückzukehren. Die Zieloption macht es zu einer GUI-Anwendung, sodass nicht einmal ein Terminalfenster geöffnet wird.
Antwort3
Es sind (soweit ich weiß) keine in Windows enthaltenen Programme vorhanden, die bei der Ausführung sofort beendet werden (zumindest nicht absichtlich).
In Windows Vista und neuer gibt es jedoch dietimeout.exeDienstprogramm. Timeout.exe
wartet eine bestimmte Anzahl von Sekunden und wird dann beendet. Beispiel:
C:\>timeout /t 0 > nul:
Mit der Einstellung timeout.exe
„0 Sekunden warten“ kommen Sie einer EXE-Datei am nächsten, die sofort beendet wird.
Antwort4
Ich habe es versucht rndll32.exe
, hh.exe
aber beides hat den %ERRORLEVEL% nicht geändert. Es ist eine Umgebungsvariable, die angibt, ob die letzte ausführbare Datei erfolgreich war. Funktioniert wie der Unix-Rückgabecode.
Mein Noop-Befehl unten setzt %ERRORLEVEL% auf Null:
cd %CD%
Ändern Sie einfach das Arbeitsverzeichnis zum aktuellen.