Ribbit works
記事のトップ画像

【コピペで使える】バッチファイルで空ファイルを作る方法3パターン

PowerShell

last modified date2022-3-11

publish date2021-8-17

Windows におけるバッチファイルは、扱い方を覚えてしまえば PC 操作がより快適になりますが、専門として取り扱っている方でなければ他プログラミング言語とも勝手が違いますし、取っつきにくいところかと思います。

今回は、バッチファイルを利用して空ファイルを作る方法を、コピーアンドペーストで使えるコード付きで紹介したいと思います。

type を使ったパターン

type関数は、引数に指定したファイル内容を表示するものです。

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

上記のコマンドを実行した場合、sample.txtの内容がコマンドライン上に表示されます。

引数に送り先を指定した場合、送り元ファイルの内容を送り先ファイルに反映されます。

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

上記のコマンドでいえば、パブリックのドキュメントに保存されているsample.txtの内容がそのままsample2.txtにコピーされます。

今回は、type nul > %新規ファイル名% とすることで、

空データをファイルに書き出します。ファイルがないので、新しく作ります。

といった動作を起こし、空ファイルを生成されます。

type nul > %ファイル名%

以下はコピペ用テストデータとなります。変数である FOLDER, FILE をそれぞれ、出力したいフォルダ、ファイル名に変更してください。

イメージ(コピーできます)

C:\WINDOWS\system32\cmd.exe

Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2019 Local Bias 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

Copy を使ったパターン

copyコマンドは2つの引数を使って、データをコピーする関数です。

copy A B

上記のコマンドを実行した場合、A というファイルを、B というファイルにコピーすることができます。

今回は、 copy nul %新規ファイル名% とすることで、

空データをファイルにコピーします。ファイルがないので、新しく作ります。

といった動作を起こすことで、空ファイルを作成します

copy nul %ファイル名%

以下はコピペ用テストデータとなります。変数である FOLDER, FILE をそれぞれ、出力したいフォルダ、ファイル名に変更してください。

イメージ(コピーできます)

 C:\WINDOWS\system32\cmd.exe

Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2019 Local Bias All rights reserved.
 
C:\users\user>copy nul %userprofile%\Documents\empty.file_

バッチファイルの場合

@echo off
setlocal

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

copy nul %FOLDER%%FILE%

endlocal
exit

echo を使ったパターン

一番馴染みのあるであろう echo を使用したパターンも紹介します。注意点としては、完全な空ファイルは作られません。2 バイトのデータができてしまいます。ですが、基本的に重複チェックなどに使うだけであれば、大きな問題とはならないかと思います。

echo は送り先を指定することで、引数をファイルに書き出すことができます。ここまで聞くと、echo nul>%ファイル名%としたくなりますが、nul が「nul」という文字列として扱われてしまうため、うまくいきません。ですので、改行を出力する、echo;と組み合わせ、echo;>%ファイル名%とすることで、

改行をファイルに出力します。ファイルがないので、新しく作ります。

といった動作になります。ファイルサイズが 2 バイトできてしまいますが、一番理解しやすいかもしれませんね。

echo;>%ファイル名%

以下はコピペ用テストデータとなります。変数である FOLDER, FILE をそれぞれ、出力したいフォルダ、ファイル名に変更してください。

イメージ(コピーできます)

C:\WINDOWS\system32\cmd.exe

Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2019 Local Bias 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