In Kix ein Verzeichnis löschen
Ich will mit Kix ein Verzeichnis - wenn vorhanden - löschen.
Hallo allerseits,
nachdem ich mich jetzt seit kurzem etwas mit Kixtart befasst habe stehe ich vor folgendem Problem: Ich will ein Verzeichnis - sofern es existiert - löschen.
Folgenden Code habe ich dafür zusammengeschrieben:
Das Problem ist, dass @16034 = 3 ist und das Verzeichnis - welches nicht leer ist - nicht gelöscht wird.
Hat irgendwer eine Idee woran das liegen kann?
Schon mal vielen Dank.
MfG. mhard666
So, hab grad noch versucht den Inhalt des Verzeichnisses mit DEL vor dem Löschen des Selbigen zu löschen - es passiert nix. Die enthaltenen Dateien bleiben nach wie vor in dem Verzeichnis und @16034 = 0.
Ahja, System ist Win2k3 Server, ich bin mit Admin-Rechten angemeldet und die Verzeichnisse sind auch ok - sprich vorhanden.
nachdem ich mich jetzt seit kurzem etwas mit Kixtart befasst habe stehe ich vor folgendem Problem: Ich will ein Verzeichnis - sofern es existiert - löschen.
Folgenden Code habe ich dafür zusammengeschrieben:
$BackupDir = "E:\wss3_backup\"
$DestinationDir = "E:\wss3_backup\"
$FileName = Dir($BackupDir + "spbr*.")
While $FileName <> "" and @ERROR = 0
$FileTime = GetFileTime($BackupDir + $FileName, 1)
$TimeStamp = SubStr($FileTime, 1, 4) + SubStr($FileTime, 6, 2) + SubStr($FileTime, 9, 2) + SubStr($FileTime, 12, 2) + SubStr($FileTime, 15, 2) + SubStr($FileTime, 18, 2)
? "\\ODIN\NETLOGON\7za.exe " + $DestinationDir + $TimeStamp + ".zip " + $BackupDir + $FileName + " -r"
SHELL "\\ODIN\NETLOGON\7za.exe a " + $DestinationDir + $TimeStamp + ".zip " + $BackupDir + $FileName + " -r"
; ========== File/Dir löschen - je nach FileAttribute
IF EXIST ($BackupDir + $FileName)
? $BackupDir + $FileName
IF GETFILEATTR ($BackupDir + $FileName) & 16
? $BackupDir + $FileName + "\*.* /s"
? @ERROR
RD $BackupDir + $FileName + " /s"
IF @ERROR <> 0
? "Fehler " + @ERROR + " beim Löschen des Verzeichnisses."
ELSE
? "Verzeichnis " + CHR(34) + $BackupDir + $FileName + CHR(34) + " gelöscht."
ENDIF
ELSE
DEL $BackupDir + $FileName ; (löschen wenn Datei existiert)
? "Datei " + CHR(34) + $BackupDir + $FileName + CHR(34) + " gelöscht."
ENDIF
ENDIF
$FileName = Dir()
Loop
Hat irgendwer eine Idee woran das liegen kann?
Schon mal vielen Dank.
MfG. mhard666
So, hab grad noch versucht den Inhalt des Verzeichnisses mit DEL vor dem Löschen des Selbigen zu löschen - es passiert nix. Die enthaltenen Dateien bleiben nach wie vor in dem Verzeichnis und @16034 = 0.
Ahja, System ist Win2k3 Server, ich bin mit Admin-Rechten angemeldet und die Verzeichnisse sind auch ok - sprich vorhanden.
Please also mark the comments that contributed to the solution of the article
Content-Key: 117126
Url: https://administrator.de/contentid/117126
Printed on: April 27, 2024 at 03:04 o'clock
3 Comments
Latest comment
Servus,
sollte dein Problem lösen.
Gruß
edit Zeile 5 bezog sich auf dein ursprüngliches Skript.. /edit
edit² Zeile 17 /edit also...
edit³ und lieber nicht Error abfragen, sondern noch ein if exist - macht (in meinen Augen) mehr Sinn /edit
05. RD $BackupDir + $FileName + " /s /q"
sollte dein Problem lösen.
Gruß
edit Zeile 5 bezog sich auf dein ursprüngliches Skript.. /edit
edit² Zeile 17 /edit also...
edit³ und lieber nicht Error abfragen, sondern noch ein if exist - macht (in meinen Augen) mehr Sinn /edit
Ich nutze diese Funktion zum löschen von Verzeichnissen.
Function DelDir($Pathname)
Dim $Filename
$Filename = Dir($Pathname + "\*.*")
While $Filename <> "" And @ERROR = 0
If $Filename <> "." And $Filename <> ".."
If (GetFileAttr($Pathname + "\" + $Filename) & 16)
DelDir($Pathname + "\" + $Filename)
SetFileAttr($Pathname + "\" + $Filename, 128)
Rd ($Pathname + "\" + $Filename)
Else
SetFileAttr($Pathname + "\" + $Filename, 128)
Del ($Pathname + "\" + $Filename)
EndIf
EndIf
$Filename = Dir()
Loop
EndFunction