再帰処理を行うプログラムの例です。
ListFolder では Cドライブから始まって各サブフォルダを繰り返し呼び出すことによって全フォルダ走査をしています。
なお、アクセスできないフォルダに触れるをエラーとなるためにエラーが起きても処理を続行する指示 On Error Resume Next が必要になります。
VBS のアイコンをダブルクリックして実行した場合、ダイアログが無数に繰り返し表示されるため、コマンドライン起動でないと動かないようにしています。
ListFolders.vbs
On Error Resume Next
Const CSCRIPT_EXE = "cscript.exe"
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objRootFolder = objFSO.GetFolder("C:\")
IF LCase(Right(WScript.FullName, Len(CSCRIPT_EXE))) <> CSCRIPT_EXE Then
WScript.Echo CSCRIPT_EXE & "から実行してください"
WScript.Quit
End IF
Ret = ListFolder(objRootFolder)
WScript.echo "Finish!"
Function ListFolder(objFolder)
WScript.Echo objFolder.Path
For Each objSubFolder in objFolder.SubFolders
Ret = ListFolder(objSubFolder)
Next
ListFolder = 0
End Function
参考:
Script のページに戻る
0 件のコメント:
コメントを投稿