'stblib1.vbs
'****************************************************************
' 関数: GetFileAttribute
' 用途: ファイルの情報を取得
' 入力: ファイルパス
' 戻値: (作成、更新、サイズ、タイプ、属性)の連結文字列
'****************************************************************
Function GetFileAttribute(file)
Dim strGetFileAttribute
strGetFileAttribute = ""
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFile = objFso.GetFile(file)
strGetFileAttribute = _
"作成:" & objFile.DateCreated & _
" 更新:" & objFile.DateLastModified & _
" サイズ:" & objFile.Size
'" タイプ:" & objFile.Type & _
'" 属性:" & objFile.Attributes
Set objFile = Nothing
Set objFso = Nothing
GetFileAttribute = strGetFileAttribute
End Function
'****************************************************************
' 関数: GetFileType
' 用途: ZIP検索文字列を含む文字列を返す
' 入力: 文字列
' 戻値: URLパス
'****************************************************************
Function GetFileType(str)
Dim strGetFileType
Dim regEx
Dim Matches
Dim Match
strGetFileType = ""
Set regEx = New RegExp
' 検索パターンを文字列で設定
regEx.Pattern = "http://(.+?).zip"
' 大文字小文字を区別しない ( この場合はどちらでも良い )
regEx.IgnoreCase = True
' 文字列全体を検索 False だと一件しか検索しない
regEx.Global = True
' 検索の実行
Set Matches = regEx.Execute(str)
For Each Match in Matches
' 検索結果の中の () 内の文字列を取得
IF (strGetFileType = "") THEN
strGetFileType = Match.SubMatches(0)
strGetFileType = "http://" & strGetFileType & ".zip"
'WScript.Echo now & "** Match=" & strGetFileType
'WScript.Echo now & "** Match=" & Match.SubMatches(0)
exit For
End IF
Next
GetFileType = strGetFileType
End Function
'****************************************************************
' 関数: GetUrlFile
' 用途: URL からファイル名を求める
' 入力: URL
' 戻値: URLのファイル部分
'****************************************************************
Function GetUrlFile(s)
Dim iPos,sGetUrlFile
sGetUrlFile = ""
iPos = instrRev(s,"/",-1,1)
sGetUrlFile = mid(s,iPos+1)
GetUrlFile = sGetUrlFile
End function
'**************************************************************
' 関数: GetUrlFilename
' 用途: URLパス名からファイル名を求める
' 入力: URLパス
' 戻値: URLのファイル名
'**************************************************************
Function GetUrlFilename(URL)
Dim sPathName, sFileName, ipos
ipos = InStrRev(Trim(URL), "/")
sPathName = Left(URL, ipos)
sFileName = Mid(URL, ipos + 1)
GetUrlFilename = sFileName
End Function
'****************************************************************
' 関数: GetURI
' 用途: URLからURIを求める
' 入力: URL
' 戻値: URLのURI部分
'****************************************************************
Function GetURI(s)
Dim iPos,sURI
sURI = ""
iPos = instrRev(s,"/",-1,1)
sURI = mid(s,1,iPos)
GetURI = sURI
End function
'****************************************************************
' 関数: GetDriveFree
' 用途: ドライブの情報を表示 する
' 入力: ファイル
' 入力: ドライブの情報に表示するコメント
' 戻値: 空きサイズ
'****************************************************************
Function GetDriveFree(sPath,msg)
On Error Resume Next
Dim objFSO ' FileSystemObject
Dim objDrive ' ドライブ情報
Dim sDrive ' ドライブ名
Dim sType ' ドライブ種類の文字列
Dim sGetDriveFree
sGetDriveFree = ""
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
IF Err.Number = 0 THEN
sType = Array("Unknown", "Removable", "HDD", "Network", "CD-ROM", "RAM")
sDrive = objFSO.GetDriveName(sPath)
WScript.Echo vbtab & vbtab & vbtab & "[ドライブ情報] :" & msg & "ドライブ " & sDrive
IF objFSO.DriveExists(sDrive) THEN
Set objDrive = objFSO.GetDrive(sDrive)
If objDrive.IsReady = True Then
'WScript.Echo " ボリュームラベル:" & objDrive.VolumeName
'WScript.Echo " 種類 :" & sType(objDrive.DriveType)
'WScript.Echo " ファイルシステム:" & objDrive.FileSystem
WScript.Echo vbtab & vbtab & vbtab & "空領域 / 容量 :" & _
FormatNumber(objDrive.FreeSpace, 0) & " / " & _
FormatNumber(objDrive.TotalSize, 0) & vbcrlf
'WScript.Echo " フォルダ :" & objDrive.Path
'WScript.Echo " ルートフォルダ :" & objDrive.RootFolder
sGetDriveFree = objDrive.FreeSpace
ELSE
WScript.Echo now & " GetDriveFree 準備ができていません"
END IF
ELSE
WScript.Echo now & " GetDriveFree 存在しません。"
END IF
ELSE
WScript.Echo now & " GetDriveFree エラー:" & Err.Number & Err.Description
END IF
'objDrive.Close
Set objFSO = Nothing
Set objDrive = Nothing
GetDriveFree = sGetDriveFree
End Function
'****************************************************************
' 関数: IsCscript
' 用途: 自VBSを起動したWSH コマンドがcScriptを返信
' 入力: 無し
' 戻値: cScriptの時true wScriptの時false
'****************************************************************
Function IsCscript()
' WSH起動コマンド
Const WHS_COMMAND_WSCRIPT = "wscript.exe"
Const WHS_COMMAND_CSCRIPT = "cscript.exe"
IsCscript = true
IF LCase( Right(WScript.FullName, len(WHS_COMMAND_WSCRIPT)) ) = WHS_COMMAND_WSCRIPT THEN
IsCscript = false
END IF
End Function
'****************************************************************
' 関数: SetLogHeader
' 用途: ログヘッダーページをフォーマット
' 入力: ヘッダーのコメントメッセージ
' 戻値: コンピュータ名前
'****************************************************************
Function SetLogHeader(msg)
Dim objNetWork ' ネットワークオブジェクト
Dim objParm ' コマンドラインパラメータ
Dim i ' コマンドライン引数の個数
Dim chr
iStepNo = 0
WScript.Echo now & " ***********************************************************"
WScript.Echo now & EditTitleLine(" ** Script : " & Wscript.ScriptName)
WScript.Echo now & EditTitleLine(" ** " & Wscript.ScriptFullName)
WScript.Echo now & " ** ----------------------------------------------------- **"
WScript.Echo now & EditTitleLine(" ** WSH : " & Wscript.Name)
WScript.Echo now & EditTitleLine(" ** " & Wscript.FullName)
WScript.Echo now & EditTitleLine(" ** " & Wscript.Path)
WScript.Echo now & " ** ----------------------------------------------------- **"
Set objParm = WScript.Arguments
WScript.Echo now & EditTitleLine(" ** Command param count " & objParm.Count)
For i=1 To objParm.Count
WScript.echo now & EditTitleLine(" ** (" & i & ") " & objParm.Item(i - 1))
Next
WScript.Echo now & " ** ----------------------------------------------------- **"
' ネットワークオブジェクトの作成
Set objNetWork = WScript.CreateObject("WScript.Network")
' ユーザ名
WScript.echo now & EditTitleLine(" ** UserName : " & objNetWork.UserName)
' ドメイン名
WScript.echo now & EditTitleLine(" ** UserDomain : " & objNetWork.UserDomain)
' コンピュータ名
WScript.echo now & EditTitleLine(" ** ComputerName : " & GetComputer())
WScript.Echo now & " ***********************************************************"
WScript.Echo now & EditTitleLine(" ** " & msg)
WScript.Echo now & " ***********************************************************"
SetLogHeader = GetComputer()
Set objNetWork = Nothing
End Function
'****************************************************************
' 関数: EditTitleLine
' 用途: 文字列編集、所定のカラム位置に**の文字を挿入する
' 入力: 変種前文字列
' 戻値: 編集後文字列
'****************************************************************
Function EditTitleLine(chr)
Dim sEditTitleLine
Dim iMAXCOLS
iMAXCOLS = 60
sEditTitleLine = left(chr,len(chr)) & Space(iMAXCOLS-len(" **")-len(chr)) & " **"
EditTitleLine = sEditTitleLine
End Function
'****************************************************************
' 関数: SetLogStepStart
' 用途: ログステップ開始のメッセージ表示
' 入力: ステップ番号
' 入力: 連結文字列
' 戻値: 無し
'****************************************************************
Function SetLogStepStart(iStepNo,msg)
WScript.Echo now & " **_STEP(" & iStepNo & ")" & " **_START_** " & msg
End Function
'****************************************************************
' 関数: SetLogStepEnd
' 用途: ログステップ終了
' 入力: ステップ番号
' 入力: 連結文字列
' 戻値: 無し
'****************************************************************
Function SetLogStepEnd(iStepNo,msg)
WScript.Echo now & " **_STEP(" & iStepNo & ")" & " **__END__** " & msg & vbCrLf
End Function