我在autoit中编写了一个小的2行脚本,如下所示
#RequireAdmin
FileDelete ( "C:\Users\Administrator\Desktop\temp\" )
我想要删除目录下的文件,但即使我尝试使用此代码也无法正常工作 -
#RequireAdmin
DirRemove ( "C:\Users\Administrator\Desktop\temp\" )
但它没有任何建议吗?
答案 0 :(得分:2)
FileDelete的语法是
FileDelete ( "filename" ) ; not only directory!
您还可以使用通配符作为文件名(*和?)。 Diskussion of wildcards: see Remarks here.
DirRemove的工作原理如下:
DirRemove ( "path" [, recurse = 0] )
使用recurse = 0(默认值)时,只有在文件夹为空时才删除该文件夹! 使用recurse = 1删除文件和子目录(如DOS DelTree命令)。
编辑: 可能是,你误解了使用旗帜的那种。这就是为什么更详细:
; 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
但是,只用一个命令删除所有删除后的根文件夹是不是更容易?