0

わかりました。私は VBScript にまったく慣れていないので、気楽にやってください。

プライマリ バックアップ フォルダーに存在しなくなった冗長バックアップ フォルダーからファイルを削除する VBScript を作成しようとしています。冗長フォルダー内の各ファイルを取得し、同じ名前のファイルがプライマリ バックアップ フォルダーに存在するかどうかを確認するものを想定しています。そうでない場合は、冗長フォルダー内のファイルを削除します。簡単そうに見えますが、私の VB の知識不足が足を引っ張っていると思います。

編集: これは Server 2003 で実行されます。

これが私がこれまでに持っているものです:

'variables
dim fso1
dim fso2
dim redundantFolder
dim primaryFolder
dim redundantFile
dim primaryFile
dim counter

'creates file system object
Set fso1 = CreateObject("Scripting.FileSystemObject")
set fso2 = CreateObject("Scripting.FileSystemObject")

'sets the folder object to redundant backup folder
Set redundantFolder = fso1.GetFolder("C:\Users\bmcwilliams\Desktop\Dev\TestCompleted")

'sets folder object to primary folder
Set primaryFolder = fso2.getFolder("C:\Users\bmcwilliams\Desktop\Dev\TestUnCompleted")

'deletes files that aren't found in primary folder
For Each redundantFile in redundantFolder
    For Each primaryFile in primaryFolder
        if primaryFile.name == redundantFile.name
            flag = false
            Next

コードの「For Each」ブロックのロジックが不完全であり、単に間違っていることは承知していますが、それは私の小さな脳が許した限りです。

前もって感謝します。どんな助けでも大歓迎です。

編集:これが最終的なコードです。別の初心者に役立つことを願っています:

'creates file system object
Set fso1 = CreateObject("Scripting.FileSystemObject")
Set fso2 = CreateObject("Scripting.FileSystemObject")

'sets the folder object to redundant backup folder
Set redundantFolder = fso1.GetFolder("C:\temp\redundant")

'sets folder object to primary folder
Set primaryFolder = fso2.GetFolder("C:\temp\primary")

'deletes files that aren't found in primary folder
For Each redundantFile In redundantFolder.Files
    If Not fso1.FileExists(primaryFolder.Path + "\" + redundantFile.Name) Then
       redundantFile.Delete
    End If
Next
4

1 に答える 1

1
'creates file system object
Set fso = CreateObject("Scripting.FileSystemObject")

'sets the folder object to redundant backup folder
Set redundantFolder = fso.GetFolder("C:\temp\redundant")

'sets folder object to primary folder
Set primaryFolder = fso.GetFolder("C:\temp\primary")

'deletes files that aren't found in primary folder
For Each redundantFile In redundantFolder.Files
    If Not fso.FileExists(fso.BuildPath(primaryFolder.Path,redundantFile.Name)) Then
       redundantFile.Delete
    End If
Next
于 2012-11-14T14:20:29.753 に答える