新年あけましておめでとうございます。
今年の目標は「Windowsを真面目に勉強しよう」かなぁ・・・
いままで、仕事で使うから”なんとなく”推測で使ってきたけど、いろいろ推測してきたネタがおぼろげながらつながってきたからここらで真面目に勉強してみよう。
とりあえず、今年最初のプログラムはファイルの更新時間を右クリックから更新するプログラムをVBScriptで。
フォルダの中のファイルの更新日時も一緒に更新したいので再帰的に動かしたい。
cygwinの touch.exe を使ってやるのがお手軽かな?
Option Explicit
Dim objWshShell
Dim objFSO
set objWshShell = WScript.CreateObject("WScript.Shell")
if Wscript.Arguments.count = 0 then
wscript.quit
end if
set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Dim i
For i = 0 To WScript.Arguments.Count-1
call FileTouch(WScript.Arguments(i))
Next
Sub FileTouch(byVal inName)
if objFSO.FileExists(inName) = true then
call objWshShell.Run("C:\cygwin\bin\touch.exe '" & inName & "'", 0)
exit sub
end if
if objFSO.FolderExists(inName) = true then
Dim objFolder
Dim f
call objWshShell.Run("C:\cygwin\bin\touch.exe '" & inName & "'", 0)
set objFolder = objFSO.GetFolder(inName)
for each f in objFolder.Files
Call FileTouch(f.Path)
Next
for each f in objFolder.SubFolders
Call FileTouch(f.Path)
Next
exit sub
end if
End Sub
これを touch_r.vbs に保存して、C:\Documents and Settings\qshinya\SendTo に保存。これで”右クリック→送る”からファイル/フォルダを指定すれば更新日時を変更できる。一発目はこんなもんか。
今年の目標は「Windowsを真面目に勉強しよう」かなぁ・・・
いままで、仕事で使うから”なんとなく”推測で使ってきたけど、いろいろ推測してきたネタがおぼろげながらつながってきたからここらで真面目に勉強してみよう。
とりあえず、今年最初のプログラムはファイルの更新時間を右クリックから更新するプログラムをVBScriptで。
フォルダの中のファイルの更新日時も一緒に更新したいので再帰的に動かしたい。
cygwinの touch.exe を使ってやるのがお手軽かな?
Option Explicit
Dim objWshShell
Dim objFSO
set objWshShell = WScript.CreateObject("WScript.Shell")
if Wscript.Arguments.count = 0 then
wscript.quit
end if
set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Dim i
For i = 0 To WScript.Arguments.Count-1
call FileTouch(WScript.Arguments(i))
Next
Sub FileTouch(byVal inName)
if objFSO.FileExists(inName) = true then
call objWshShell.Run("C:\cygwin\bin\touch.exe '" & inName & "'", 0)
exit sub
end if
if objFSO.FolderExists(inName) = true then
Dim objFolder
Dim f
call objWshShell.Run("C:\cygwin\bin\touch.exe '" & inName & "'", 0)
set objFolder = objFSO.GetFolder(inName)
for each f in objFolder.Files
Call FileTouch(f.Path)
Next
for each f in objFolder.SubFolders
Call FileTouch(f.Path)
Next
exit sub
end if
End Sub
これを touch_r.vbs に保存して、C:\Documents and Settings\qshinya\SendTo に保存。これで”右クリック→送る”からファイル/フォルダを指定すれば更新日時を変更できる。一発目はこんなもんか。