空ファイルの作成
Windows におけるバッチファイルは、扱い方を覚えてしまえば PC 操作がより快適になりますが、専門として取り扱っている方でなければ他プログラミング言語とも勝手が違いますし、取っつきにくいところかと思います。
このページではバッチファイルを利用して空ファイルを作る方法を、コピーアンドペーストで使えるコード付きで紹介しています。
type を使ったパターン
type 関数は本来、引数に指定したファイル内容を表示するものです。
以下のようにコマンドを実行した場合、sample.txt の内容がコマンドライン上に表示されます。
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
コマンドを使ってファイルを作成するためには、type
コマンドの最初の引数に nul を指定します。
type nul > <新規ファイル名>
このようにすることで、何も書かれていない空ファイルが、2つ目の引数に指定したファイル名で作成されます。
type nul > %ファイル名%
以下はコピペ用テストデータとなります。変数である FOLDER, 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
コマンドを使って空ファイルを作成する場合、前述したtype
コマンドと同様に、最初の引数に nul を指定します。
copy nul <新規ファイル名>
このようにすることで、何も書かれていない空ファイルが、2つ目の引数に指定したファイル名で作成されます。
copy nul %ファイル名%
以下はコピペ用テストデータとなります。変数である FOLDER, FILE をそれぞれ、出力したいフォルダ、ファイル名に変更してください。
イメージ(コピーできます)
バッチファイルの場合
@echo off
setlocal
set FOLDER=%userprofile%\Documents\
set FILE=test.out
copy nul %FOLDER%%FILE%
endlocal
exit
copy
コマンドの詳細については、以下のページをご参照ください。
echo を使ったパターン
馴染みのある方も多いecho
コマンドでも、空ファイルを作成することが可能です。
注意点としては、完全な空ファイルは作られません。2 バイトのデータができてしまいます。
ですが、基本的に重複チェックなどに使うだけであれば、大きな問題とはならないかと思います。
echo は送り先を指定することで、引数をファイルに書き出すことができます。
ここまで聞くと、echo nul>%ファイル名%としたくなりますが、nul が「nul」という文字列として扱われてしまうため、うまくいきません。
ですので、改行を出力する、echo;
と組み合わせ以下のように記述することで、空ファイルを作成することができます。
echo;>%ファイル名%
お気づきの方もいるかもしれませんが、この処理では完全な空ファイルではなく、改行のみを含むファイルが作成されます。
ファイルサイズは 2 バイトとなるのはこれが理由です。
echo;>%ファイル名%
以下はコピペ用テストデータとなります。変数である FOLDER, FILE をそれぞれ、出力したいフォルダ、ファイル名に変更してください。
イメージ(コピーできます)
バッチファイルの場合
@echo off
setlocal
set FOLDER=%userprofile%\Documents\
set FILE=test.out
echo;>%FOLDER%%FILE%
endlocal
exit
echo
コマンドの詳細については、以下のページをご参照ください。