2016-10-13 9 views
0

サブフォルダ\ファイルの共有パスを確認する必要があります。存在する場合は、共有パスのLastModified Timeが1時間を超えていないかどうかを確認する必要があります。Windowsの共有フォルダの最終変更時刻を取得する

共有パスに「パスが見つかりません」というエラーが表示されますが、コードは通常のディレクトリで正常に動作します。

は、ここに私のコード

Dim fso, folder 
folder = "C:/test" 
Set fso = CreateObject("Scripting.FileSystemObject") 
Set folder = fso.GetFolder(folder) 
If folder.Files.Count + folder.SubFolders.Count = 0 Then 
    WScript.Echo "Folder is Empty" 
ElseIf (folder.DateLastModified > 60) Then 
    WScript.Echo "Exceeded 1 hour" 
Else 
    WScript.Echo "Not Exceeded 1 hour" 
End If 

このコードは、スクリプト内で言及したパスのために動作しますが、それはパス\\server.com\subfolder\subfolder\subfolderのエラーが見つかりません「パス」をスローします。

+0

権限はおそらくあなたが昇格した権限でスクリプトを実行しますか? – Lankymart

答えて

0

疑問がある場合は、documentationをお読みください。フォルダの存在を確認するには、FolderExistsメソッドを使用します。ファイルの存在を確認するにはFileExistsメソッドを使用します。

フォルダーオブジェクトが存在することを確認しない限り、取得しようとしないでください。また、異なるものに変数を再使用しないようにしてください。

path = "\\server\share\sub\folder" 
Set fso = CreateObject("Scripting.FileSystemObject") 
If fso.FolderExists(path) Then 
    Set folder = fso.GetFolder(path) 
    ... 
End If 
0

あなたがアクセスするユーザー権限を必要とするネットワーク共有フォルダを使用している場合は、VBScriptのは、資格情報を使用してそれにアクセスしようとすることができるように一時的に追加したネットワークドライブを作成しようとしなければなりません。ここから

ServerShare = "\\192.168.3.56\d$" 
UserName = "domain\username" 
Password = "password" 

Set NetworkObject = CreateObject("WScript.Network") 
Set FSO = CreateObject("Scripting.FileSystemObject") 

NetworkObject.MapNetworkDrive "", ServerShare, False, UserName, Password 

Set Directory = FSO.GetFolder(ServerShare) 
For Each FileName In Directory.Files 
    WScript.Echo FileName.Name 
Next 

Set FileName = Nothing 
Set Directory = Nothing 
Set FSO = Nothing 

NetworkObject.RemoveNetworkDrive ServerShare, True, False 

Set ShellObject = Nothing 
Set NetworkObject = Nothing 

盗まれた:Access network share from within VBScript eg FileSystemObject

関連する問題