2016-06-07 8 views
1

i wie ein kleines 2-zeiliges Skript in autoit codiert sind unterWie mit löschen Datei autoit

#RequireAdmin 
FileDelete ("C:\Users\Administrator\Desktop\temp\") 

ich wollte Dateien unter Verzeichnis löschen, aber es funktioniert ist nicht einmal habe ich versucht, diese code-

#RequireAdmin 
DirRemove ("C:\Users\Administrator\Desktop\temp\") 

Aber es funktioniert keine Anregung?

Antwort

2

Die Syntax für FileDelete ist

FileDelete ("filename") ; not only directory! 

Sie können auch nach Dateinamen Platzhalter verwenden (* und?). Diskussion of wildcards: see Remarks here.

DirRemove arbeitet wie folgt:

DirRemove ("path" [, recurse = 0]) 

Mit recurse = 0 (Standard), den Ordner löscht, nur dann, wenn es leer ist! Mit recurse = 1 entfernen Sie Dateien und Unterverzeichnisse (wie der DOS DelTree Befehl).

EDIT: Vielleicht haben Sie die Art missverstanden, Flags zu verwenden. Das ist, warum mehr im Detail:

; Remove only the empty folder "Folder_path" 
DirRemove('Folder_Path') 

; Remove folder "Folder_Path" with all subfolder and all files within 
DirRemove('Folder_Path', 1) 

Wenn diese should'nt seine eine Frage der Systemrechte arbeiten.

EDIT_2: Wenn Sie ohne den Stammordner selbst löschen möchten, können Sie dies tun:

#include <Files.au3> 

; get all the files in root folder and delete them 
Local $aFilesInRoot = _FileListToArray('Your_Path', 1, True) ; 1=$FLTA_FILES = Return files only, True=returns full path 
For $i = 1 To $aFilesInRoot[0] 
    FileDelete($aFilesInRoot[1]) 
Next 

; now get all the subfolder under root and delete these all recursive 
Local $aFolderInRoot = _FileListToArray('Your_Path', 2, True); 2=$FLTA_FOLDERS = Return Folders only 
For $i = 1 To $aFolderInRoot[0] 
    DirRemove($aFolderInRoot[1], 1) 
Next 

Aber ist es nicht einfacher, die gelöscht Stammordner neu zu machen, nachdem alle mit nur einem Befehl zu löschen?