pushd "\\svr01\folderA\"
forfiles /P . /D -2 /C "cmd /C del /Q @path && cmd /c echo [%DATE%%TIME%] Deleted file @path" >> %LOGFILE%
popd
为什么要删除子目录的内容? :F 除非我在命令
中包含“/ S”,否则我认为不会似乎“IF @ ISDIR == FALSE echo”是修复?
forfiles /P . /D -2 /C "cmd /C IF @ISDIR==FALSE del /Q @path && cmd /c echo [%DATE%%TIME%] Deleted file @path" >> %LOGFILE%
答案 0 :(得分:2)
它不会删除目录的全部内容,但会删除目录中的所有文件。
引用DEL
帮助:
DEL [/ P] [/ F] [/ S] [/ Q] [/ A [[:] attributes]]姓名
names:指定一个或多个文件或目录的列表。 通配符可用于删除多个文件。 如果是 指定目录,目录中的所有文件 将被删除。
修改:是的,@isdir
检查可以避免此问题。
答案 1 :(得分:0)
如果给出文件夹名称而不是文件,则该文件夹中的所有文件 将被删除,但文件夹本身不会被删除。
使用if /I "@isdir"=="FALSE"
进行检查,如下所示:
forfiles /P . /D -2 /C "cmd /C if /I "@isdir"=="FALSE" (del /Q @path && echo [%DATE% %TIME%] Deleted file @fdate @path")