空ファイルの作成

にメンテナンス済み

バッチファイルやコマンドプロンプトで、中身が空のファイルを作りたい場面があります。たとえば、処理の完了を示す目印ファイルや、ログファイルの初期化などです。

このページでは、空ファイルを作る3つの方法を、コピーアンドペーストで使えるコード付きで紹介します。

結論:どの方法を使うか

方法ファイルサイズ既存ファイルがある場合
type nul > ファイル名0 バイト上書き(内容が消える)
copy nul ファイル名0 バイトコマンドプロンプトでは上書き確認が表示され、バッチファイル内では確認なしで上書き
echo;>ファイル名2 バイト(改行のみ)上書き(内容が消える)

完全な 0 バイトのファイルが必要であれば、type nul か copy nul を使ってください。

チェック

いずれの方法も、同名のファイルが既に存在すると内容が消えてしまうことがあります。既存ファイルを残したい場合は、後述の「既存ファイルを上書きしない方法」をご覧ください。

type を使ったパターン

typeコマンドは本来、引数に指定したファイルの内容を表示するコマンドです。

type C:\Users\Public\Documents\sample.txt

>でリダイレクト先を指定すると、表示される内容をファイルに書き出すことができます。

type C:\Users\Public\Documents\sample.txt > C:\Users\Public\Documents\sample2.txt

上記のコマンドを実行すると、sample.txt の内容が sample2.txt にコピーされます。

この仕組みを利用し、typeコマンドの引数にnulを指定すると、何も書かれていない空ファイルを作成できます。nulは「何も出力しない特殊なデバイス名」で、読み込んでも中身が空になります。

type nul > <新規ファイル名>

type nul > %ファイル名%

以下はコピペ用のサンプルです。変数 FOLDER、FILE を、出力したいフォルダ・ファイル名に変更してください。

コマンドプロンプトの場合(コピーできます)

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>type nul > %userprofile%\Documents\empty.file

バッチファイルの場合

@echo off
setlocal

set FOLDER=%userprofile%\Documents\
set FILE=test.out

type nul > "%FOLDER%%FILE%"

endlocal
exit /b

copy を使ったパターン

copyコマンドは、ファイルをコピーするコマンドです。

copy A B

上記のコマンドを実行すると、ファイル A をファイル B にコピーできます。

copyコマンドでも、コピー元にnulを指定することで空ファイルを作成できます。

copy nul <新規ファイル名>

実行すると「1 個のファイルをコピーしました。」と表示されます。メッセージを表示したくない場合は、末尾に>nulを付けてください。

copy nul %ファイル名%

コマンドプロンプトの場合(コピーできます)

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>copy nul %userprofile%\Documents\empty.file
おすすめ書籍※ 広告を含む場合があります
中小企業経営者のためのRPA入門 RPA導入を成功させる方法

中小企業経営者のためのRPA入門 RPA導入を成功させる方法

60分でわかる! AIエージェント 超入門

60分でわかる! AIエージェント 超入門

コマンドラインの黒い画面が怖いんです。

コマンドラインの黒い画面が怖いんです。

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

バッチファイルの場合

@echo off
setlocal

set FOLDER=%userprofile%\Documents\
set FILE=test.out

copy nul "%FOLDER%%FILE%" >nul

endlocal
exit /b

copyコマンドの詳細については、以下のページをご参照ください。

echo を使ったパターン

おなじみのechoコマンドでも、ファイルを作成できます。ただし、完全な空ファイルにはならず、2 バイトのデータが書き込まれます。

echo nul>ファイル名としたくなりますが、この場合nulは文字列として扱われ、「nul」という文字がファイルに書き込まれてしまいます。

そこで、改行だけを出力するecho;を使い、以下のように記述します。

echo;>ファイル名

この方法で作られるファイルには改行(CRLF)だけが含まれるため、ファイルサイズは 2 バイトになります。ファイルの存在確認用など、中身を使わない用途であれば問題になりません。

echo;>%ファイル名%

コマンドプロンプトの場合(コピーできます)

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>echo;>%userprofile%\Documents\empty.file

バッチファイルの場合

@echo off
setlocal

set FOLDER=%userprofile%\Documents\
set FILE=test.out

echo;>"%FOLDER%%FILE%"

endlocal
exit /b

echoコマンドの詳細については、以下のページをご参照ください。

既存ファイルを上書きしない方法

>によるリダイレクトは、同名のファイルが存在すると内容を消してしまいます。ファイルが無い場合だけ作成し、既にある場合は内容を残したいときは、追記を意味する>>を使います。

type nul >> sample.txt

何も追記しないため、既存ファイルの内容はそのまま残り、ファイルが存在しなければ空ファイルが作成されます。

また、if not existと組み合わせる方法もあります。ファイルの存在確認については、以下のページもご参照ください。

補足:PowerShell で作成する場合

PowerShell を使う場合は、New-Itemコマンドレットで空ファイルを作成できます。

New-Item sample.txt -ItemType File

練習問題

練習問題

以下のコマンドの中で、作成された sample.txt が 0 バイトでないものはどれでしょうか?

回答がサーバーに送信されることはありません
#コマンドプロンプト #バッチファイル #コマンド