更新日時を更新したくって。


■環境
Windows XP SP2
Windows Vista SP1

■要望(俺からの)
画像の詰め合わせ的な圧縮ファイルを解凍すると、それぞれのファイルがバラバラの更新日時で存在する。
それを俺のマイピクチャに入れる。すると紛れる。既存のファイルに紛れる。
画像を隠すならマイピクチャって感じでどれを入れたのかわからない。
基本的に更新日時で管理しているからだ。
そこで、フォルダ内のファイルの更新日時を全て更新してしまいたいのですが。
どうにかなりませんか、俺。

 
お応えしよう!と思ったものの、つまづいた。
当初、
UNIXのtouchコマンドみたいなものがコマンドプロンプトにもあるよねーめいびー」
とか思ったんだけどないわないわ。
フリーソフト的なものを入れればいいんだけど、自分で作りたい欲に負けて断念。
なんとかできたソースが以下となった。
 
renew.bat

set SCRIPT=%~0
for /f "delims=\ tokens=*" %%z in ("%SCRIPT%") do (
set SCRIPT_CURRENT_DIR=%%~dpz
)
cd %SCRIPT_CURRENT_DIR%
copy *.* +

 
<使い方>
上記ソースをコピーしてテキストファイルに貼って拡張子batで保存。
フォルダの中に投入してダブルクリック。そうすれば全て…現在日時が設定されましょう。
 
…いつか、なんかの間違いでヤフってここに来た人に言いたい。
「COPY!?」
君はそう思ったろうね。
そう。ファイルを上書きコピーしているだけなんだ。
でもね相当重いファイルとか、相当ファイル数が多かったりしない限り、処理時間は気にならない。僕はね。
それにその気になれば過去日付にだって設定できるんだ。システム日付をげふんげふん
 
という訳で残念な出来ではありますが悩んだ証です。
VBScriptでは思ったとおりに実現できるみたいです。
 
先輩ダイアラーさんのエントリ↓
ファイルの最終更新日時を変更するVBScript
 
(参考)
バッチファイル実行元ディレクトリの取得方法