IEを起動し、googleを開く例です。
Option Explicit Dim OBJ_Shell Set OBJ_Shell = CreateObject("Shell.Application") OBJ_Shell.Windows.Item.Navigate "<a href="http://www.google.co.jp/">http://www.google.co.jp/</a>"
Scriptのダウンロードは こちら です。
ITエンジニアの雑記
IEを起動し、googleを開く例です。
Option Explicit Dim OBJ_Shell Set OBJ_Shell = CreateObject("Shell.Application") OBJ_Shell.Windows.Item.Navigate "<a href="http://www.google.co.jp/">http://www.google.co.jp/</a>"
Scriptのダウンロードは こちら です。
Option Explicit Dim OBJ_FSO Dim OBJ_Browser Dim STR_ProgramName Set OBJ_FSO = CreateObject("Scripting.FileSystemObject") For Each OBJ_Browser In CreateObject("Shell.Application").Windows STR_ProgramName = OBJ_FSO.GetFileName(OBJ_Browser.FullName) If LCase(STR_ProgramName) = "iexplore.exe" Then WScript.Echo OBJ_Browser.LocationURL End If Next
Scriptのダウンロードは こちら です。
指定したフォルダのファイル一覧を取得します。再帰処理でサブフォルダ内のファイル名も取得します。
Option Explicit Private Function GET_FileList(STR_Path) Dim OBJ_FSO Dim OBJ_Folder Dim COL_SubFolder Dim COL_File Set OBJ_FSO = WScript.CreateObject("Scripting.FileSystemObject") Set OBJ_Folder = OBJ_FSO.GetFolder(STR_Path) For Each COL_File In OBJ_Folder.Files WScript.Echo COL_File.Name Next For Each COL_SubFolder In OBJ_Folder.SubFolders GET_FileList(COL_SubFolder) Next End Function
Scriptのダウンロードは こちら です。
以前は、UTCタイムフォーマットから”YYYYMMDDHHMMSS”に変換するスクリプトでした。
今度は、逆です。YYYYMMDDやHHMMSSを取得するスクリプトの使用しています。
Option Explicit Dim STR_Computer Dim OBJ_SWbemServices Dim OBJ_TimeZone Dim COL_TimeZone Dim STR_Bias Dim DTMCurrentDate Dim DTMTargetDate Dim DTMMonth Dim DTMDay STR_Computer = "." Set OBJ_SWbemServices = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & STR_Computer & "\root\cimv2") Set COL_TimeZone = OBJ_SWbemServices.ExecQuery("SELECT * FROM Win32_TimeZone") For Each OBJ_TimeZone In COL_TimeZone STR_Bias = OBJ_TimeZone.Bias Next DTMTargetDate = Get_YYYYMMDD(0) & Get_HHMMSS(0) DTMTargetDate = DTMTargetDate & ".000000" DTMTargetDate = DTMTargetDate & CStr(STR_Bias) WScript.Echo DTMTargetDate Private Function Get_YYYYMMDD(ByVal STR_Flag) Dim STR_Temp Dim STR_YYYYMMDD If Not IsNumeric(STR_Flag) Then Exit Function End If STR_Temp = Year(Now) If Len(STR_Temp) = 2 Then STR_Temp = "20" & STR_Temp End If If STR_Flag >= 1 Then STR_Temp = STR_Temp & "/" End If STR_YYYYMMDD = STR_Temp STR_Temp = Month(Now()) If Len(STR_Temp) = 1 Then STR_Temp = "0" & STR_Temp End If If STR_Flag >= 1 Then STR_Temp = STR_Temp & "/" End If STR_YYYYMMDD = STR_YYYYMMDD & STR_Temp STR_Temp = Day(Now()) If Len(STR_Temp) = 1 Then STR_Temp = "0" & STR_Temp End If STR_YYYYMMDD = STR_YYYYMMDD & STR_Temp GET_YYYYMMDD = STR_YYYYMMDD End Function Private Function GET_HHMMSS(ByVal STR_Flag) Dim STR_Temp Dim STR_HHMMSS If Not IsNumeric(STR_Flag) Then Exit Function End If STR_Temp = Hour(Now()) If Len(Hour(Now())) = 1 Then STR_Temp = "0" & Hour(Now()) If STR_Flag >= 1 Then STR_Temp = STR_Temp & ":" End If STR_HHMMSS = STR_Temp STR_Temp = Minute(Now()) If Len(Minute(Now())) = 1 Then STR_Temp = "0" & Minute(Now()) If STR_Flag >= 1 Then STR_Temp = STR_Temp & ":" End If STR_HHMMSS = STR_HHMMSS & STR_Temp STR_Temp = Second(Now()) If Len(Second(Now())) = 1 Then STR_Temp = "0" & Second(Now()) STR_HHMMSS = STR_HHMMSS & STR_Temp GET_HHMMSS = STR_HHMMSS End Function
Scriptのダウンロードは こちら です。
今度は、HHMMDDを取得します。
引数も同様に、1以上の場合は”HH:MM:SS”を、0の場合は”HHMMSS”です。
Private Function GET_HHMMSS(ByVal STR_Flag) Dim STR_Temp Dim STR_HHMMSS If Not IsNumeric(STR_Flag) Then Exit Function End If STR_Temp = Hour(Now()) If Len(Hour(Now())) = 1 Then STR_Temp = "0" & Hour(Now()) If STR_Flag >= 1 Then STR_Temp = STR_Temp & ":" End If STR_HHMMSS = STR_Temp STR_Temp = Minute(Now()) If Len(Minute(Now())) = 1 Then STR_Temp = "0" & Minute(Now()) If STR_Flag >= 1 Then STR_Temp = STR_Temp & ":" End If STR_HHMMSS = STR_HHMMSS & STR_Temp STR_Temp = Second(Now()) If Len(Second(Now())) = 1 Then STR_Temp = "0" & Second(Now()) STR_HHMMSS = STR_HHMMSS & STR_Temp GET_HHMMSS = STR_HHMMSS End Function
Scriptのダウンロードは こちら です。
WSHのプログラミングで、年月日(YYYYMMDD)や時間(HHMMSS)をとるのって、以外と手間だったりします。
ファイル名やタイムスタンプを表示するときに私は以下の関数を利用しています。
まずは、年月日からです。フラグで1以上の値を渡すと”YYYY/MM/DD”になり、0の場合は、”YYYYMMDD”になります。
Private Function Get_YYYYMMDD(ByVal STR_Flag) Dim STR_Temp Dim STR_YYYYMMDD If Not IsNumeric(STR_Flag) Then Exit Function End If STR_Temp = Year(Now) If Len(STR_Temp) = 2 Then STR_Temp = "20" & STR_Temp End If If STR_Flag >= 1 Then STR_Temp = STR_Temp & "/" End If STR_YYYYMMDD = STR_Temp STR_Temp = Month(Now()) If Len(STR_Temp) = 1 Then STR_Temp = "0" & STR_Temp End If If STR_Flag >= 1 Then STR_Temp = STR_Temp & "/" End If STR_YYYYMMDD = STR_YYYYMMDD & STR_Temp STR_Temp = Day(Now()) If Len(STR_Temp) = 1 Then STR_Temp = "0" & STR_Temp End If STR_YYYYMMDD = STR_YYYYMMDD & STR_Temp GET_YYYYMMDD = STR_YYYYMMDD End Function
Scriptのダウンロードは こちら です。
プログラムの中で、UTC(Universal Time Coordinate)を扱うことがあります。
UTCは、こんな↓データで、一目見てもいつなのか分かりにくいです。
“20081011000000.000000+540″
これを”YYYYMMDD HH:MM:SS” 形式に変換するWSHです。
(jscriptだと関数がありますが、vbsだとプログラムで生成するしかないと思います)
Option Explicit Function ConvertUTCToDate(STR_DateTime) ConvertUTCToDate = CDate(Mid(STR_DateTime, 5, 2) & "/" & _ Mid(STR_DateTime, 7, 2) & "/" & Left(STR_DateTime, 4) & " " & _ Mid(STR_DateTime, 9, 2) & ":" & _ Mid(STR_DateTime, 11, 2) & ":" & _ Mid(STR_DateTime, 13, 2)) End Function
Scriptのダウンロードは こちら です。