Linux上で、あらゆるものを無に還してくれる(?)便利な”/dev/null”デバイスですが、Windows上のシェルで同様の処理をしたい!と思った時に困ったことはないでしょうか。
実は、WindowsにもLinuxの/dev/nullに相当する存在が用意されています。
NUL (空のファイル) – DOS コマンド一覧 – Programming Field
‘nul’というデバイスファイルです。
このファイルは、各ディレクトリ上に仮想的に存在する扱いとなっていて、どのディレクトリにいても呼び出すことができます。
(逆に言うと、nulというファイルがすべてのディレクトリに存在する扱いになっているため、Windows上では’nul’というファイル名でファイルを作ることはできません。)
例えば、次のような”test.txt”というファイルを作成したとします。
C:\Users\user>type test.txt
hogehoge
では、nulを使って次のようにしてみます。
C:\Users\user>type nul > test.txt
そのあとで再びtest.txtの内容を表示してみます。
C:\Users\user>type test.txt
C:\Users\user>
test.txtの中身が空になりました。
勿論、次のような使い方もできます。
例:
huga.exe … 何か文字列を吐き出すプログラム
C:\Users\user>huga.exe > nul
ということで、ほぼLinuxの/dev/nullと同じことができそうです。
ただし、nulはcmdのみで利用できる存在で、PowerShellでは使うことができないので注意が必要です。