Linux系を使っている人ならご存知かと思いますが、touch というコマンドがあります。
使う人にはとっても便利(いや、そこそこぐらいかな・・・)、使わない人には意味不明なコマンドです。
Windowsには touch コマンドがありません。
Windowsにも touch コマンドが欲しいという方には、ちょっとだけ役に立つ内容かも知れません。
最初に言っちゃいますが、今回の記事は別段珍しくも無い内容です。
検索すれば幾らでも出てきますし、この記事でプラスアルファみたな事も書いていません(笑)
完全に個人的なメモとして書いたものになりますが、 touch コマンドを知らない方ももし良ければご覧ください。
あと、PATHとか touch の説明は殆ど書いていません。
この記事を読む人は、その辺はご存知だろうと思いますので・・・
まずは結論
Windowsで touch コマンドを使う手順を書いておきます。
ただし、今回の touch コマンドは簡易版です。
Linuxにおける touch コマンドは幾つかオプションがありますが、そこまで対応していません。
できない事はないですが、私が使う機能さえあればいいので。
1.これを保存しろ!
ファイル名は touch.bat
@echo off REM ********************************************************* REM touchコマンド(簡易版) REM 引数:%1 - ファイルパス REM ********************************************************* REM ========================================================= REM 情報元 REM Microsoft - 日付とファイルのタイムスタンプを更新 REM https://support.microsoft.com/ja-jp/kb/69581 REM ========================================================= REM --------------------------------------------------------- REM 引数チェック REM 引数が無い場合は何もせず終了 REM --------------------------------------------------------- if %1. ==. goto end REM --------------------------------------------------------- REM 処理開始 REM --------------------------------------------------------- if not exist %1 ( REM 無いなら作る type nul > %1 ) else ( REM 有るなら日付更新 copy /b %1 +,, > nul ) REM 不要なので削除 REM echo %1 touched! REM --------------------------------------------------------- REM 終了 REM --------------------------------------------------------- :end
2.touch.bat をPATHの通ったところへ置け!
どこでもいいです。
PATHが通っているところへ置いてください。
自作コマンドですので、僕はDropbox等のクラウドに置いてます。
そのクラウドの中のフォルダにPATHを通しています。
3.使え!
コマンドプロンプトで、
touch C:\hoge\fuga\boo.txt
のように打てばOKです。
touch コマンドってなに?
カンタンに言えば、
- (指定したファイルが無いなら)作る
- (指定したファイルが有るなら)ファイルのタイムスタンプを更新する
というものです。
touch コマンドってどんな時に使うの?
ここに書いている以外にも使い方はあるでしょうが、私はこう使っていますよというご紹介です。
確実にmake対象とする時
Linuxで開発する時に touch コマンドをよく使っていました。
どういう時に使っていたかと言うと、
- hoge.hファイルだけを変更
- hoge.cファイルは変更なし
※hoge.cはhoge.hをincludeしている - make実行
- make対象(hoge.c)が更新されていないのでmakeされない
※hoge.cのタイムスタンプが前回makeより新しくなっていればmake対象となるはず
と、こういう事がよく発生していたため、確実にmakeするために事前に対象ファイル(hoge.c)に touch していました。
ソースコードが何十本・何百本とあったため、make all は10分とか20分とか時間がかるためやりたくない。
必要なファイルだけmakeするために touch コマンドを使っていました。
テスト用のダミーファイルを作りたい時
例えばですが、ファイルを削除や移動するようなプログラムやbatやshellをテストする時、ダミーファイルを作らないといけませんね。しかも大量に。
中身はどうでもよくて、なんせファイルさえあればOKな時、この touch コマンドでファイルを作るのです。
touch hoge001.txt touch hoge002.txt touch hoge003.txt touch hoge004.txt ・ ・ ・ ・
というbatやshを作っておけば何度でもファイルを作ることができます。
touch コマンドって便利なの?
どうなんでしょ?
私は結構好きなコマンドですね。
Linuxを使った開発ではちょくちょく使っていますが、Windowsには touch コマンドは無いので使いたいなとずっと思っていました。
で、よくよく考えるとbatで作ればいいじゃんと思って、今回調べたわけです。
最近の仕事でダミーファイルを大量に作ったり、タイムスタンプを更新する必要があったので、バンバン使いまくりました。
まとめ
参考図書
なのにbatで作ればいいというのが、なぜかずっと思いつかなくて、つい最近になって気付きました(笑)
GUI全盛の時代ですが、touch hoge001.txt のようなコマンドを大量に書いてコマンドプロンプトやターミナルに貼り付けるだけで処理してくれるんですから、コマンドはとても便利です。
全部のコマンドを覚えるなんてもちろん無理ですので、WindowsでもLinuxでもMacでもこういう機能の単純なコマンドから使うと、コマンドのラクさ・楽しさが分かると思います。
コマンド使ってラクしましょう!!!