現在、特定のフォルダーを調べて、特定の拡張子を持つすべてのファイルを検索するスクリプトに取り組んでいます。次に、名前が出力され、ファイルサイズが合計されます。私はほとんどの問題を整理したと思うので、この質問はこれを行う方法についてではありません。
代わりに、再帰関数でFileSystemObjectストリームを使用するためのベストプラクティスを知りたいです。すべての呼び出し(グローバルまたはパス)に単一のストリームを使用する必要がありますか、それとも再帰ステップごとに新しいストリームを作成する必要がありますか?
さらに楽しくするために、これを複数のPCにアクセスさせ、UNCパスを介してアクセスさせることを計画しています。はい、これを行うためのより良い方法があると思いますが、私はVBSに比較的慣れていません。
現在のコード:
'Recursive Function handles search of files in folder and subfolders.
Function UNCSearchFolder(strUNCRootPath, strUNCNextFolder)
Dim objFSOUNCSearchFolder, objFSOUNCSearchFolder2, colFolderList, objFolder, strCurrentFolder, strSubFolder
'Get list of Subfolders in folder: <Rootpath>\<Nextfolder>
strCurrentFolder = strUNCRootPath & "\" & strUNCNextFolder & "\"
Set objFSOUNCSearchFolder = CreateObject("Scripting.FileSystemObject")
Set objFSOUNCSearchFolder2 = objFSOUNCSearchFolder.GetFolder(strCurrentFolder)
Set colFolderList = objFSOUNCSearchFolder2.SubFolders
'Subfolder dive
For Each objFolder in colFolderList
strSubFolder = objFolder.name
'REMOVE THIS ECHO LATER
wscript.echo strSubFolder
UNCSearchFolder(strCurrentFolder, strSubFolder)
Next
'Search for files here
'GC on File Streams
Set objFSOUNCSearchFolder2 = Nothing
Set objFSOUNCSearchFolder = Nothing
End Function
では、すべてのアクセスに1つのファイルストリームを使用する必要がありますか、それとも各ステップで1つのファイルストリームを個別に使用する必要がありますか?それは論点ですか?これにより、各システムへの複数の接続が発生しますか、それとも1つだけを使用する必要がありますか?基本的に、ユーザーを混乱させたり、奇妙な応答(つまり、アクティブな接続が不足したり)を引き起こしたりすることなく、スクリプトを機能させたいと考えています。このスクリプトは、私たちが行っている監査に2、3回しか使用されませんが、最終的には将来の監査に転用される可能性があります。
どう考えているか教えてください。助けてくれてありがとう、