Перечислите имена, размер и дату создания файлов/вложенных файлов?

#vbscript

Вопрос:

Я пришел из мира PowerShell, так что не бейте меня слишком сильно. Я пытаюсь перечислить имена, размеры и дату, созданные для файлов в папке, переданной сценарию, но я продолжаю получать сообщение об ошибке «Требуется объект«. Я попытался погуглить и использовать функцию поиска здесь, но я просто недостаточно знаком, чтобы понять это.

В моей голове это должно сработать:

 Dim fso, Arg, FolderPath, Exists Dim Folder, colFiles, objFile   Set fso = CreateObject("Scripting.FileSystemObject") Set Arg = WScript.Arguments Set FolderPath = Arg(0)  If Arg.Count gt; 0 Then    WScript.Echo FolderPath  Exists = fso.FolderExists(FolderPath)   if Exists Then   Set Folder= fso.GetFolder(FolderPath)  Wscript.Echo Folder.Path  Set colFiles = Folder.Files  For Each objFile in colFiles  Wscript.Echo objFile.Name  Next  Wscript.Echo   ShowSubfolders fso.GetFolder(FolderPath)   Sub ShowSubFolders(Folder)  For Each Subfolder in Folder.SubFolders  Wscript.Echo Subfolder.Path  Set Folder = fso.GetFolder(Subfolder.Path)  Set colFiles = Folder.Files  For Each objFile in colFiles  Wscript.Echo objFile.Name  Next  Wscript.Echo  ShowSubFolders Subfolder  Next  End Sub   else   Wscript.Echo "Folder Doesn't Exist"  end if end if  

Он проверяет, передан ли аргумент, а если нет, повторяет, что ничего не было передано. Если есть, проверьте, является ли пройденный путь хорошим путем, и попробуйте перечислить файлы. Может ли кто-нибудь указать мне правильное направление здесь? Я все еще не включил свойство создания размера и даты, так как хотел сначала выполнить эту часть, прежде чем приступать к этому.

К сожалению, на YouTube не так много видеороликов, объясняющих правильные конструкции If.

Комментарии:

1. Путь к папке-это строка, она не нужна set . FolderPath = Arg(0)

2. @Хлопья, оооо, я не знал об этом! Извините, мой первый день, когда я пытаюсь писать VBScripts. Есть какая-нибудь причина, по которой он мог бы бросить его в мой блок «Еще»?

Ответ №1:

Попробуй это сделать:

 Dim fso, Arg, FolderPath, Exists  Dim Folder, colFiles, objFile  Set fso = CreateObject("Scripting.FileSystemObject")  Set Arg = WScript.Arguments  FolderPath = Arg(0)  If Arg.Count gt; 0 Then  If fso.FolderExists(FolderPath) Then  Set Folder= fso.GetFolder(FolderPath)  Wscript.Echo Folder.Path  Set colFiles = Folder.Files  For Each objFile in colFiles  Wscript.Echo objFile.Name amp; " " amp; objFile.Size amp; " " amp; objFile.DateLastModified  Next  Wscript.Echo  ShowSubfolders fso.GetFolder(FolderPath)  Else   Wscript.Echo "Folder: " amp; folderpath amp; " doesn't exist"  End If  End If    Sub ShowSubFolders(Folder)  For Each Subfolder in Folder.SubFolders  Wscript.Echo Subfolder.Path  Set Folder = fso.GetFolder(Subfolder.Path)  Set colFiles = Folder.Files  For Each objFile in colFiles  Wscript.Echo objFile.Name amp; " " amp; objFile.Size amp; " " amp; objFile.DateLastModified  Next  Wscript.Echo  ShowSubFolders Subfolder  Next  End Sub