« いがうま | トップページ | ○○のチカラ »

2017年9月26日 (火)

touchする

今日は夏が戻ったような一日だった。

このくらいの暑さだと、まだ気持ちよさを感じる。

今、道端には、あちこちで彼岸花が咲いている。

ふと見ると・・・

お、アゲハチョウが蜜を吸っている!

もうちょっとアップで。

なんか夢中になっているようなので、大丈夫かな?と思って、回り込もうとすると、逃げてしまった...(泣) 残念。

昨日の夕空は、なんにもなさすぎてびっくりしたけれど(笑)、今日はキレイな雲が一杯!

こういう繊細な雲が好き。左下に三日月。

美しすぎる。

天使が羽を広げている?

太陽が沈む方面も、綺麗。

別の方角も負けていない。

やっぱりこの雲が今回の一番!

左の羽根の中に、三日月がある。

タッチ、タッチ、??に タッチ。
(著作権の問題があるので、??にした。(笑))

って、僕の大好きなあだち充の漫画「タッチ」ではなく、PCコマンドのtouch。

どれほどの人が必要かわからないけれど、ファイルの更新日時を最新にする、という話題。

結構な数のファイルがあり、その中でいくつかのファイルを更新日時で降順(最新順)に並べ、常に上に持ってきたい時ってない?

僕は、時々ある!

そういう時は、当然、そのファイルの更新日時を最新にしておけば、常に上位に持ってこられる。

でも、Windowsでは、そうやすやすとファイルの日付を変えられない。

無難なのは、そのファイル自体を編集すること。
でも、そんなの毎回やっていられない。

Unix(Linuxも含め)であれば、touchっていうコマンドがあって、それを実行すると、ファイルの更新日時を最新にしてくれる。

やっぱりUnixって便利だよなぁ、なんて思う。

ふと思って、Windowsでも同じようなことをやりたいな、と思って実行。

そんな知識はないので、まずは、ネットで検索。(笑)

まず、一番簡単な方法。

copyコマンドをうまく使えばいいらしい。

copy /B ファイル名 +,, > nul

こうすれば、ファイルの更新日時を最新に出来る。

必要なファイルを、バッチファイルの中でこうすれば、ワン・ダブルクリックで常に必要なファイルを最新状態に出来る。

バッチファイルの中。

@echo off

copy /B "a.txt" +,, > nul

copy /B "b b b.doc" +,, > nul

copy /B "ccc.xls" +,, > nul

copy /B %0 +,, > nul

exit

最後の「%0」は、自身のバッチファイルも、最新日付にしている。

こうしておかないと、バッチファイルがどんどん埋もれていくからね。(笑)

これを作った後、ちゃんとしたtouchコマンドを作ってみたい!と思ってしまい、それを作ってみた。

元開発者魂にちょっとした火がついた。(笑)

最初は、上記のように、copyコマンドのものを作っていたけれど、最終的には違う形になった。

より柔軟になった。

@echo off

setlocal enabledelayedexpansion

set i=0

for %%f in (%*) do (

if not exist %%f (

    type nul > %%f

    echo 「%%~nxf」を作成しました。

) else (

powershell.exe -Command Set-ItemProperty -path """%%f""" -Name LastWriteTime -Value "$(date)"

echo;

echo %~f1

echo 「%%~nxf」の更新日時を変更しました。

)

set /a i=!i!+1

)

if !i! == 0 (

    echo;

     echo 引数を指定して下さい。

)

echo;

pause;

:end

これを、適当な名前、やっぱりこうだよね(笑)、「touch.bat」として保存。

「PATH」が通っているところに置いておけば、コマンドプロンプト上でどこからでも呼び出せる。

この「touch.bat」の特徴。

  • 引数はいくつでも。もちろん、限界はあるだろうけれど、10個位なら問題なかった。MS-DOSの仕様次第
  • ファイルだけではなく、フォルダの更新日時も変更できる
  • そのファイルが存在しなければ、そのファイル名でファイルを新規作成
  • GUI(Explorer(ファイル操作))からでも可能。このバッチファイルにドラッグ&ドロップするか、「送る(SendTo)」にショートカットを登録しておけば、ファイルを選択し、そこにマウスで合わせるだけで、実行可能

出来上がってしまえばこんなもんか、という感じだけれど、不慣れなことをしたので、ちょっと手間取ってしまった。(苦笑)

最初は、copyコマンドだけだったけれど、フォルダの更新日時を変更出来ないというのを知って、PowerShellでやることにした。

echoでコメントを出しているけれど、そんなのもいらない、pauseもいらない、という人は、それらの行を削除すればいいでしょう。

きっちり動くコマンドを作ると、なんか嬉しいし、気持ちがいいのである!(笑)

|

« いがうま | トップページ | ○○のチカラ »

パソコン・インターネット」カテゴリの記事

日本写真 姫路」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« いがうま | トップページ | ○○のチカラ »