ここから本文です

Windows OSで長さ0バイトのファイルを作成する

9/10(月) 5:05配信

@IT

対象OS:Windows 7/Windows 8.1/Windows 10/Windows Server 2008 R2/Windows Server 2012/Windows Server 2012 R2/Windows Server 2016

 バッチなどのスクリプトを利用する場合、長さ0(ゼロ)バイトのファイルを使って、実行を制御することがある。

 例えば、ある処理の開始時に、特定の名前を持つファイル(ロックファイル)を作成しておき、処理が終了した時点でそのファイルを削除する。すると、間違えて処理を二重に起動しようとしても、そのファイルが存在する場合は処理中なので、後から起動した方は処理を中断することができる。

 また、「バッチ処理A」が成功終了した時点で特定のファイルを作成しておき、後続の「バッチ処理B」は、そのファイルが存在する場合にのみ処理を開始する、といったように記述しておけば、簡単に排他や順序制御が実現可能だ。

 このような目的で利用されるファイルは、ファイルの内容は特に問われないので、長さ0バイトのファイルが使われることが多い(0以外でもよいのだが、0だと無駄にディスクなどのリソースを消費しないですむので、これがよく使われる)。またログファイルなどの初期状態として、長さ0バイトのファイルを用意しておくこともある。

 LinuxやUNIXでは、長さ0バイトのファイルは「touch <ファイル名>」というコマンドで作成できる。touchコマンドは、本来はファイルの最終更新日時などを指定した時刻(指定がなければ現在時刻)に更新するためのコマンドだが、存在しないファイル名の場合は、ファイルを作成するという機能も持つ。

・「【 touch 】コマンド――タイムスタンプを変更する/新規ファイルを作成する」(関連記事)

 Windows OSのバッチなどでもこのようなファイルを利用したいことがあるが、残念ながらtouchコマンドはデフォルトでは用意されていない。だが、同等の機能を実現することは可能である。本TIPSでは、このような方法を幾つか紹介する。

 なお、ファイルの作成や更新時刻情報を変更するという、本来のtouchコマンドのような使い方については、今後別記事で紹介する。

1/2ページ

最終更新:9/10(月) 5:05
@IT