Risposte:
Penso che tu voglia NUL
, almeno all'interno di un prompt dei comandi o file batch.
Per esempio:
type c:\autoexec.bat > NUL
non crea un file.
(Credo che lo stesso sia vero se provi a creare un file a livello di codice, ma non l'ho provato.)
In PowerShell, vuoi $null
:
echo 1 > $null
NUL:
(e CON:
, PRN:
...), è in gran parte una questione di stile e mostra chiaramente che NUL:
è un oggetto speciale e non un file chiamato NUL
. Inoltre, è possibile con un'API speciale creare un file chiamato NUL
(vedere una delle risposte). Sogno che forse un giorno, se tutti usano i due punti per convenzione, saremo in grado di deprecare i nomi dei dispositivi speciali temuti :-)
Secondo questo messaggio sulla mailing list di GCC , puoi usare il file "nul" invece di / dev / null:
#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;
}
(Crediti a Danny per questo codice; copia-incolla dal suo messaggio.)
Puoi anche usare questo speciale file "nul" attraverso il reindirizzamento.
C:\dev
directory in Windows e usi molte utility GNU, alla fine acquisirai un file misterioso chiamato null in quella directory.
NUL
in Windows sembra essere in realtà un percorso virtuale in qualsiasi cartella. Proprio come ..
, .
in qualsiasi file system.
Utilizzare qualsiasi cartella seguita da NUL funzionerà.
Esempio,
echo 1 > nul
echo 1 > c:\nul
echo 1 > c:\users\nul
echo 1 > c:\windows\nul
avere lo stesso effetto di /dev/null
su Linux.
Questo è stato testato su Windows 7, 64 bit.
md \\.\c:\nul
quora.com/… , gohacking.com/how-to-create-con-folder-in-windows , superuser.com/questions/86999/…
nul
Jon Skeet ha ragione. Ecco la pagina Nul Device Driver nella documentazione di Windows Embedded (non ho idea del perché non sia altrove ...).
Eccone un altro:
NUL
funziona anche a livello di programmazione. Ad esempio il seguente:
freopen("NUL", "w", stderr);
funziona come previsto senza creare un file. (MSVC ++ 12.0)
NUL
, ed è passato da quel punto 5 anni fa.
Se hai bisogno di eseguire in Microsoft Windows l'equivalente di un link simbolico a quello /dev/null
in Linux, apri e l'amministratore cmd
e digita:
Per i file:
mklink c:\path\to\file.ext NUL:
Oppure, per le directory:
mklink /D c:\path\to\dir NUL:
Ciò manterrà il file / directory sempre a 0 byte e restituirà comunque successo ad ogni tentativo di scrittura.
Devi usare start e $ NUL per questo in Windows PowerShell :
Digita questo comando assumendo che mySum
sia il nome della tua applicazione e 5
10
sono gli argomenti della riga di comando che stai inviando.
start .\mySum 5 10 > $NUL 2>&1
Il start
comando avvierà un processo distaccato, un effetto simile a &
. L' /B
opzione impedisce l'avvio di aprire una nuova finestra del terminale se il programma in esecuzione è un'applicazione console. ed NUL
è l'equivalente di Windows di /dev/null
. Alla 2>&1
fine reindirizzerà stderr a stdout, che andrà a tutti NUL
.