Antworten:
Ich denke, Sie möchten NUL
, zumindest innerhalb einer Eingabeaufforderung oder Batch-Dateien.
Zum Beispiel:
type c:\autoexec.bat > NUL
erstellt keine Datei.
(Ich glaube, dasselbe gilt, wenn Sie versuchen, eine Datei programmgesteuert zu erstellen, aber ich habe es nicht versucht.)
In PowerShell möchten Sie $null
:
echo 1 > $null
NUL:
(und CON:
, PRN:
...). Es ist meistens eine Frage des Stils und zeigt deutlich, dass NUL:
es sich um ein spezielles Objekt und nicht um eine aufgerufene Datei handelt NUL
. Mit einer speziellen API ist es auch möglich, eine aufgerufene Datei zu erstellen NUL
(siehe eine der Antworten). Ich träume davon, dass wir vielleicht eines Tages, wenn jeder den Doppelpunkt
Entsprechend dieser Nachricht in der GCC-Mailingliste können Sie die Datei "nul" anstelle von / dev / null verwenden:
#include <stdio.h>
int main ()
{
FILE* outfile = fopen ("/dev/null", "w");
if (outfile == NULL)
{
fputs ("could not open '/dev/null'", stderr);
}
outfile = fopen ("nul", "w");
if (outfile == NULL)
{
fputs ("could not open 'nul'", stderr);
}
return 0;
}
(Dank an Danny für diesen Code; kopiert aus seiner Nachricht.)
Sie können diese spezielle "nul" -Datei auch durch Umleitung verwenden.
C:\dev
Verzeichnis in Windows erstellen und viele GNU-Dienstprogramme verwenden, schließlich eine mysteriöse Datei mit dem Namen null in diesem Verzeichnis erhalten.
NUL
in Windows scheint tatsächlich ein virtueller Pfad in einem beliebigen Ordner zu sein. Genau wie ..
, .
in jedem Dateisystem.
Verwenden Sie einen beliebigen Ordner, dem NUL folgt.
Beispiel,
echo 1 > nul
echo 1 > c:\nul
echo 1 > c:\users\nul
echo 1 > c:\windows\nul
haben den gleichen Effekt wie /dev/null
unter Linux.
Dies wurde unter Windows 7, 64 Bit getestet.
md \\.\c:\nul
quora.com/... , gohacking.com/how-to-create-con-folder-in-windows , superuser.com/questions/86999/...
nul
Jon Skeet ist richtig. Hier ist die Nul-Gerätetreiberseite in der Windows Embedded-Dokumentation (ich habe keine Ahnung, warum es nicht woanders ist ...).
Hier ist noch einer:
NUL
funktioniert auch programmgesteuert. ZB folgendes:
freopen("NUL", "w", stderr);
funktioniert wie erwartet, ohne eine Datei zu erstellen. (MSVC ++ 12.0)
NUL
, und es war vor 5 Jahren vorbei.
Wenn Sie in Microsoft Windows das Äquivalent eines Symlinks zu /dev/null
Linux ausführen müssen, öffnen Sie und Administrator cmd
und geben Sie Folgendes ein:
Für Dateien:
mklink c:\path\to\file.ext NUL:
Oder für Verzeichnisse:
mklink /D c:\path\to\dir NUL:
Dadurch bleibt die Datei / das Verzeichnis immer auf 0 Byte und der Erfolg wird bei jedem Schreibversuch zurückgegeben.
In Windows PowerShell müssen Sie dafür start und $ NUL verwenden :
Geben Sie diesen Befehl ein, vorausgesetzt, es mySum
handelt sich um den Namen Ihrer Anwendung und 5
10
um Befehlszeilenargumente, die Sie senden.
start .\mySum 5 10 > $NUL 2>&1
Der start
Befehl startet einen getrennten Prozess, ähnlich wie bei &
. Die /B
Option verhindert, dass der Start ein neues Terminalfenster öffnet, wenn das von Ihnen ausgeführte Programm eine Konsolenanwendung ist. und NUL
entspricht Windows /dev/null
. Am 2>&1
Ende wird stderr zu stdout umgeleitet, zu dem alle gehen NUL
.