Also muss ich ein Skript schreiben, um alle Dateien außer n
neueste (zuletzt erstellt) zu löschen. Ich führe mein Skript mit zwei Argumenten aus: Ordnerverzeichnis und Anzahl der Dateien, die nicht entfernt werden sollen.Löschen aller Dateien außer wenigen
Hier ist mein Skript, aber es entfernt tatsächlich zufällige Dateien. Wie kann ich es schaffen, n
neueste Dateien zu verlassen?
Wie ich laufen Skript: delete C:\users\Adam\Desktop\Test 3
Mein Skript:
Dim address
Dim n
Set fso = CreateObject("Scripting.FileSystemObject")
If (Wscript.Arguments.Count <> 2) Then
MsgBox("Wrong number of paramets")
Else
address = Wscript.Arguments(0)
n = Wscript.Arguments(1)
MsgBox(address & " " & n)
Set objFolder = fso.GetFolder(address)
For Each objFile in objFolder.files
If n <> 0 Then
n = n - 1
else
objFile.Delete True
End If
Next
End if
Code mit sort:
Function SortFiles(files)
ReDim sorted(files.Count - 1)
Dim file, i, j
i = 0
For Each file in files
Set sorted(i) = file
i = i + 1
Next
For i = 0 to files.Count - 2
For j = i + 1 to files.Count - 1
If sorted(i).DateLastModified < sorted(j).DateLastModified Then
Dim tmp
Set tmp = sorted(i)
Set sorted(i) = sorted(j)
Set sorted(j) = tmp
End If
Next
Next
SortFiles = sorted
End Function
If (Wscript.Arguments.Count <> 2) Then
MsgBox("Wrong number of paramets")
else
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Dim files
address = Wscript.Arguments(0)
n = Wscript.Arguments(1)
Set files = fso.GetFolder(address).Files
Dim file
For Each file in SortFiles(files)
If n <> 0 Then
n = n - 1
else
file.Delete True
End If
Next
end if
Wenn Sie sag "neuestes", tu y meinst du zuletzt erstellt oder zuletzt geändert? – freginold
ich meine erstellt. – murilo
Sie müssen die Dateien sortieren, bevor Sie alle bis auf "n" löschen, wenn Sie die neuesten speichern möchten. Siehe [diese Antwort] (https://stackoverflow.com/a/16895790/5463636) und [diese Antwort] (https://stackoverflow.com/a/16289700/5463636) für Möglichkeiten, dies zu tun. – freginold