Last-modified: 2010-07-18 (日) 17:50:04 (5245d)

 「あるファイルのタイムスタンプを、別のファイルのタイムスタンプで更新したい」って時に、結構便利なんじゃないかな?ってスクリプトです。
 ちなみに、変更するのは"更新時刻"のみ。

touch.vbs

'
' 第2引数以降のファイルのタイムスタンプを
' 第1引数のファイルのタイムスタンプで更新する。
'
' @authoer Jomora( kazuhiko@jomura.net http://jomura.net )
' @version 2010.07.18 初版作成


'**Start Encode**

Set objArgs = WScript.Arguments.Unnamed
If objArgs.Count < 2 Then
	WScript.Echo "2つ以上のファイルを指定してください。"
	WScript.Quit
End If

' main

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Shell.Application")

' タイムスタンプ取得
modifyDate = objFSO.GetFile(objArgs.Item(0)).DateLastModified

' タイムスタンプ設定
For i = 1 To objArgs.Count - 1
	Set objFile = objFSO.GetFile(objArgs.Item(i))
'	WScript.Echo "path:" & objFile.ParentFolder.Path & " name:" & objFile.Name
	Set shellFolder = objShell.NameSpace(objFile.ParentFolder.Path)
	Set shellFile = shellFolder.ParseName(objFile.Name)
	shellFile.ModifyDate  = modifyDate
Next

WScript.Quit
  • 使い方
    1. 対象のファイル(複数)を選択状態にして、そのうちの元タイムスタンプのファイルを摘んで、touch.vbsにDropする。
    2. touch.vbsをコンテキストメニューの"送る"に登録しておく。対象のファイル(複数)を選択状態にして、そのうちの元タイムスタンプのファイルをtouch.vbsに"送る"。

添付ファイル: filetouch.vbs 4582件 [詳細]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS