BAT: 空ファイルを作成するスクリプト

空ファイルをBATで作成するにはtypeコマンドを使います。本来はtypeはファイルの中身を表示する機能ですがnul >を使うことで空ファイルを作成することが可能になります。注意点があり、このオプションは自動的に上書きしてしまうのでexistを使って回避する必要があります。

例

次のコードは簡単にファイルを作成するBATスクリプトになります。.batがあるディレクトリ階層上にsample.txtファイルを作成します。

@echo off
setlocal

set "fname=sample.txt"

type nul > %fname%

endlocal
pause

もし階層を指定したい場合は次のように階層パスを記述してあげることでその階層へファイルを作成することができる。

set "path=C:\Desktop\sample\"
set "fname=sample.txt"

type nul > %path%%fname%

上書きさせないために

上書きさせないためにはif exist文を使いファイルの存在確認をします。

@echo off
setlocal

set "path=C:\Downloads\sample\"
set "file=sample.txt"

if not exist "%path%%file%" (
    type nul > "%path%%file%"
) else (
    echo 同じファイルがあるため作成できません
)

endlocal
pause

文字化け対策

エディタで保存する場合基本UTF-8で保存されてしまうのでそれが文字化けの原因になります。保存形式をUTF-8からShift JISに変えることで解決できます。または、batファイルにchcpと記載することでコードの保存形式を変更することができます。

@echo off
chcp 65001 >nul
setlocal
...

参考文献