2016-06-07 5 views
1

я закодирован небольшой скрипт 2 строки в AutoIt, как показано нижеКак удалить файл с AutoIt

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

я хотел, чтобы удалить файлы в каталоге, но это не работает, даже я попытался это code-

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

Но это не работает какое-либо предложение?

ответ

2

Синтаксис FileDelete является

FileDelete ("filename") ; not only directory! 

Вы также можете использовать групповые символы для имени файла (* и?). Diskussion of wildcards: see Remarks here.

DirRemove работает следующим образом:

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

С Recurse = 0 (по умолчанию), удаляет папку, только если она пуста! С recurse = 1 удалите файлы и подкаталоги (например, DOS DelTree).

EDIT: Возможно, вы неправильно поняли использование флажков. Вот почему более подробно:

; 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) 

Если это не должно работать, это вопрос о системных правах.

EDIT_2: Если вы хотите удалить без самой корневой папки, вы можете сделать так:

#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 

Но не проще переделать удалено корневую папку после удаления все только с одной командой?