DirRemove() zickt auch rum?

  • Hallo allerseits, in meinem Skript kommt folgende Zeilen vor:

    [autoit]

    If @OSVersion = "WIN_VISTA" Or IsAdmin() Then
    #RequireAdmin
    EndIf
    $dir = @DesktopDir & "\test\bla\"
    DirCreate($dir)
    ;mehr Text
    Sleep(1000)
    ;noch mehr Text
    DirRemove($dir, 1)

    [/autoit]

    Liegt der Fehler an mir? Muss am Ende der Backslash weg? Liegt das an Vista?

    Was muss ich tun?

    Danke schon mal im Voraus für jede Hilfe!

  • Hi,
    Ich habs mal ohne den letzten "\" versucht und:
    1. wurde der Ordner bla im Ordner "test" erstellt und nach dem sleep:
    2. wurde der Ordner "bla" im "test" gelöscht...
    (wenn das das ziel war, das du beabsichtigt hast, dann funktionierts :))
    PS: ich habe XP

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • möchtest du (wie xovoxkindom schon erwähnt) den ordner test löschen?
    dann eben ohne bla
    also nur removedir und den pfad vom test ordner nicht test ordner\bla

  • So sollte es funktionieren:

    Spoiler anzeigen
    [autoit]


    If @OSVersion = "WIN_VISTA" Or IsAdmin() Then
    #RequireAdmin
    EndIf
    $dir = @DesktopDir & "\test\"
    DirCreate($dir) ; Ordner auf dem Desk anlegen
    DirCreate($dir & "bla\") ; Unterordner in den auf dem Desk angelegten Ordner anlegen
    MsgBox(0,"Test","Ordner da") ; MsgBox zum schauen ob Ordner da sind.
    ;mehr Text
    Sleep(1000)
    ;noch mehr Text
    DirRemove($dir, 1) ; löscht den ordner "test" incl. Unterordner auf dem Desk

    [/autoit]

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Dein Skript funktioniert zwar, aber meines nicht :(

    Hier das Skript:

    [autoit]

    Opt("TrayAutoPause", 0)

    [/autoit][autoit][/autoit][autoit]

    If @OSVersion = "WIN_VISTA" Or IsAdmin() Then
    #RequireAdmin
    EndIf

    [/autoit][autoit][/autoit][autoit]

    $dll = DllOpen("user32.dll")

    [/autoit][autoit][/autoit][autoit]

    Global $Tag = @MDAY, $Monat = @MON, $Jahr = @YEAR, $Stunde = @HOUR, $Minute = @MIN, $dir = @DesktopDir & "\dir\" & $Tag & "-" & $Monat & "-" & $Jahr & "_" & $Stunde & "-" & $Minute
    DirCreate(@DesktopDir & "\dir\")
    DirCreate($dir & "\")

    [/autoit][autoit][/autoit][autoit]

    While 1
    ;Arbeite, arbeite, arbeite
    WEnd

    [/autoit][autoit][/autoit][autoit]

    $Form = GUICreate("Form", 500, 40, -1, -1, $WS_POPUP, $WS_EX_TOOLWINDOW)
    $Progress1 = GUICtrlCreateProgress(0, 0, 500, 40, $PBS_SMOOTH)
    GUISetState()

    [/autoit][autoit][/autoit][autoit]

    GUICtrlDelete($Progress1)
    $MarqueeProgress = GUICtrlCreateProgress(0, 0, 500, 40, $PBS_MARQUEE)
    $MarqueehProgress = GUICtrlGetHandle($MarqueeProgress)
    _SendMessage($MarqueehProgress, $PBM_SETMARQUEE, True, 10)
    $Datei = $dir & "\index.html"
    _FileCreate($Datei)
    FileWrite($Datei, '<html><head><title>Matthias Gianfelice</title></head><body><h1 align="center">psc.exe - ' & @UserName & " vom " & $Tag & "." & $Monat & "." & $Jahr & "</h1>")
    FileWrite($Datei, "<p>")
    For $i = 1 To $Bild
    FileWrite($Datei, '<a href="final' & $i - 1 & '.jpg" target="_top"><img src="final' & $i - 1 & '.jpg" border="0" heigth="600" width="800"></a><br /><hr /><br />')
    Next
    FileWrite($Datei, '</p><h3 align="center">Ende</h3></body><html>')
    $zipDatei = @DesktopDir & "\dir\" & $Tag & "-" & $Monat & "-" & $Jahr & ".zip"
    If _ZipCreate($zipDatei) Then
    _ZipAdd($zipDatei, $Datei)
    For $i = 0 To $Bild - 1
    _ZipAdd($zipDatei, $dir & "\final" & $i & ".jpg")
    Next
    Else
    Exit
    EndIf

    [/autoit][autoit][/autoit][autoit]

    #Region Zip-UDF
    ;======================================
    ;| Thanks to Stilgar ;) |
    ;======================================
    Func _ZipAdd($zipFile, $addFile)
    Local $oShell, $oDir

    [/autoit][autoit][/autoit][autoit]

    $oShell = ObjCreate("Shell.Application")

    [/autoit][autoit][/autoit][autoit]

    If IsObj($oShell) Then
    $oDir = $oShell.NameSpace($zipFile)
    $oDir.CopyHere($addFile)
    Sleep(500)
    Return 1
    EndIf

    [/autoit][autoit][/autoit][autoit]

    Return 0
    EndFunc ;==>_ZipAdd

    [/autoit][autoit][/autoit][autoit]

    Func _ZipCreate($zipFile)
    Local $i, $sHeader, $file, $err

    [/autoit][autoit][/autoit][autoit]

    $sHeader = "PK" & Chr(5) & Chr(6)
    For $i = 0 To 17
    $sHeader &= Chr(0)
    Next

    [/autoit][autoit][/autoit][autoit]

    $file = FileOpen($zipFile, 2)
    $err = FileWrite($file, StringToBinary($sHeader))
    FileClose($file)

    [/autoit][autoit][/autoit][autoit]

    Return $err
    EndFunc ;==>_ZipCreate
    #EndRegion Zip-UDF

    [/autoit][autoit][/autoit][autoit]

    DirRemove($dir, 1)

    [/autoit][autoit][/autoit][autoit]

    GUIDelete($Form)
    Exit

    [/autoit][autoit][/autoit][autoit]

    Func OnAutoItExit()
    If MsgBox(36, "", "Da dieses Programm noch im Alpaha-Studium ist, würde ich mich um ein Feedback freuen!" & @CRLF & @CRLF & "Hat das Programm Probleme gemacht? Gibt es Anregungen, Kritik etc.?") = 6 Then
    _INetMail("matthias@gianfelice.de", "Kommentar", "")
    EndIf
    EndFunc ;==>OnAutoItExit

    [/autoit]
  • Das sollte Dir weiter helfen:

    Spoiler anzeigen
    [autoit]


    $dir = @DesktopDir & "\psc\" ; statt: DirCreate(@DesktopDir & "\psc\")
    DirCreate($dir) ; statt: DirCreate($dir & "\")
    DirCreate($dir & "u_ordner\") ; Unterordner im Ordner psc wenn später mal gewünscht
    DirRemove($dir, 1) ; löscht den Ordner psc incl. Unterordner und Dateien die da drinne sind

    [/autoit]

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    • Offizieller Beitrag

    Hallo

    Ich verstehe zugegebener maßen die Zeilen

    [autoit]

    If @OSVersion = "WIN_VISTA" Or IsAdmin() Then
    #RequireAdmin
    EndIf

    [/autoit]


    Nicht :P Wenn OS = Vista oder wenn das Script mit Adminrechten läuft gib ihm Adminrechte..??
    Einfach oben immer #RequireAdmin hinschreiben, ohne igrendwelche If abfragen. Bei XP wird es ignoriert, und wenn du bei Vista schon Adminrechte hast, wird das auch ignoriert.

    Mfg Spider

  • Nein, ich meinte Wenn OS=Vista, dann Adminrechte, da sonst gar nichts funktioniert,
    Wenn Adminrechte unter XP zur Verfügung stehen, dann soll er sie auch nutzen, damit man "mehr" kann :D