私はVBスクリプトに非常に慣れていないので、開始名_SAと2日前に基づいて、いくつかの3番目のレベルのサブフォルダーを削除するスクリプトが必要です
例
C:\abc\user1\temp\_SA123 c:\abc\user2\temp_SA2345 c:\abc\user3\temp_SA4567
2 日以上前の _SA で始まるフォルダーを削除したいのですが、50 人以上のユーザー フォルダーがあります。助けてください
ありがとう、チリ
私はVBスクリプトに非常に慣れていないので、開始名_SAと2日前に基づいて、いくつかの3番目のレベルのサブフォルダーを削除するスクリプトが必要です
例
C:\abc\user1\temp\_SA123 c:\abc\user2\temp_SA2345 c:\abc\user3\temp_SA4567
2 日以上前の _SA で始まるフォルダーを削除したいのですが、50 人以上のユーザー フォルダーがあります。助けてください
ありがとう、チリ
サンプル データに基づいて、これは機能するはずですが、これは第 4 レベルと見なします。
編集:あなたがよく尋ねたので、これを更新して、削除されたフォルダーのパス、作成日、および削除した日付をリストする変数にログを作成しました。この情報は msgbox に表示されますが、代わりにデータをファイルに出力するように簡単に変更できます。
Dim rootFolder
Dim fld
Dim subFld
Dim subsubFld
Dim Log
Set fso = CreateObject("Scripting.FileSystemObject")
Set rootFolder = fso.GetFolder("C:\abc\")
For Each fld In rootFolder.SubFolders
For Each subFld In fld.SubFolders
For Each subsubFld In subFld.SubFolders
If Len(subsubFld.Name) >= 3 Then
If Left(subsubFld.Name, 3) = "_SA" And subsubFld.DateCreated < Now() - 2 Then
Log = subsubFld.Path & ", Created " & subsubFld.DateCreated & ",Deleted" & Now & vbNewLine
subsubFld.Delete
End If
End If
Next
Next
Next
MsgBox Log
'Or you could print the log to a file.
エラー トラップはなく (フォルダ名が 3 文字以上であることを確認する以外は)、権限がない場合は権限が拒否されます。
注: 投稿したコードにはインデントがあり、何らかの理由で表示されません。インデントされたコードを見たい場合は、編集ボタンを押してください。