タイトル | : 「コンピューター名」「ユーザー名」「所有者名」も表示 |
記事No | : 16506 |
投稿日 | : 2019/09/27(Fri) 10:15 |
投稿者 | : しずく |
はじめまして、超初心者です。
VBSの掲示板を探したのですが、良い所がなくここにたどりつきました。 ネットワーク上のフォルダを監視するソースをネット上で見つけました。 基本的には、これでいいのですが、ただ 「コンピューター名」「ユーザー名」「所有者名」も表示したいのですが 皆目、分りません。どうか、先生方宜しく、お願い致します。
;;;見つけたソースです。
' -------------------------------------------------------------------- ' VBAの時はSleepのAPI宣言(Declare)が必要 ' Private Declare Sub Sleep Lib "kernel32" (ByVal dwMs As Long) ' -------------------------------------------------------------------- ' 監視するフォルダの設定
fol_path = "D:\仕掛図"
' (変更前)フォルダ内のファイル一覧(更新日時付き)の取得 Redim path_list1(0) GetFDate fol_path, path_list1
'Dim path_list0() ' VBAの時に必要 path_list0 = path_list1
Do WScript.Sleep(1000) ' VBSの時 'Sleep 1000: DoEvents ' VBAの時
' (変更後)フォルダ内のファイル一覧(更新日時付き)の取得 Redim path_list2(0) GetFDate fol_path, path_list2
' 変更前後のファイル一覧(更新日時付き)の比較 Redim comp_list(0) FComp path_list0, path_list2, comp_list
' 比較結果表示 For i = 1 To Ubound(comp_list) MsgBox comp_list(i) Next
' 変更後を変更前として設定 path_list0 = path_list2 Loop ' --------------------------------------------------------------------
' フォルダ内のファイル一覧(更新日時付き)の取得------------------------ Public Sub GetFDate(ByVal fol_path, ByRef path_list()) Set fso = CreateObject("Scripting.FileSystemObject")
For Each f In fso.GetFolder(fol_path).files ReDim Preserve path_list(UBound(path_list) + 1) path_list(UBound(path_list)) = _ f.path & vbTab & fso.GetFile(f.path).DateLastModified Next
For Each f In fso.GetFolder(fol_path).SubFolders GetFDate f.path, path_list Next
Set fso = Nothing End Sub ' --------------------------------------------------------------------
' ファイル一覧(更新日時付き)の比較------------------------------------ Public Sub FComp(ByRef ls1(), ByRef ls2(), ByRef comp_list()) p1 = 1 p2 = 1 Do If p1 > Ubound(ls1) And p2 > Ubound(ls2) Then Exit Do End If
fd1 = "" fd2 = "" If p1 <= Ubound(ls1) Then fd1 = Split(ls1(p1), vbTab) End If If p2 <= Ubound(ls2) Then fd2 = Split(ls2(p2), vbTab) End If
If IsArray(fd1) = True And IsArray(fd2) = True Then fn1 = LCase(fd1(0)) fn2 = LCase(fd2(0)) If fn1 = fn2 Then If fd1(1) = fd2(1) Then ElseIf fd1(1) <> fd2(1) Then ReDim Preserve comp_list(UBound(comp_list) + 1) comp_list(UBound(comp_list)) = "(Mod)" & fd1(0) End If p1 = p1 +1 p2 = p2 +1 ElseIf fn1 < fn2 Then ReDim Preserve comp_list(UBound(comp_list) + 1) comp_list(UBound(comp_list)) = "(Del)" & fd1(0) p1 = p1 +1 ElseIf fn1 > fn2 Then ReDim Preserve comp_list(UBound(comp_list) + 1) comp_list(UBound(comp_list)) = "(Add)" & fd2(0) p2 = p2 +1 End If ElseIf IsArray(fd1) = True And IsArray(fd2) = False Then ReDim Preserve comp_list(UBound(comp_list) + 1) comp_list(UBound(comp_list)) = "(Del)" & fd1(0) p1 = p1 +1 ElseIf IsArray(fd1) = False And IsArray(fd2) = True Then ReDim Preserve comp_list(UBound(comp_list) + 1) comp_list(UBound(comp_list)) = "(Add)" & fd2(0) p2 = p2 +1 Else p1 = p1 +1 p2 = p2 +1 End If Loop
End Sub ' --------------------------------------------------------------------
|