nant delete子文件夹排除文件

时间:2014-07-07 18:52:21

标签: windows batch-file nant

需要有关nant或命令中删除任务的帮助,可以在nant构建文件中使用。

这是要求,我在根文件夹中有多个文件和文件夹。 我只需删除文件夹而不删除文件..

知道怎么做。

  

块引用

EX : ROOT
          -a.txt
          -b.txt
          -Folder1
          -Folder2

删除后,应该是

  

块引用

EX: ROOT-
        -a.txt
        -b.txt

提前致谢。

2 个答案:

答案 0 :(得分:1)

    for /d %%a in ("c:\some\root\*") do echo rmdir /s /q "%%~fa"

对于指定路径内的每个文件夹,匹配指定的掩码,删除文件夹

删除操作将回显到控制台。如果输出正确,请删除echo命令以执行rmdir命令。

要将其包含在构建文件中,并避免引用问题,最好创建一个包含该命令的批处理文件并调用此批处理文件。这样,批处理文件就像

@echo off
    if "%~1"=="" exit /b 1
    for /d %%a in ("%~1\*") do echo rmdir /s /q "%%~fa"

将要清理的文件夹的路径作为参数传递

然后,exec任务将类似于

<exec program="cmd.exe" commandline="/c theBatchFile.cmd" workingdir="${project.batchFiles}" output="e:\my.txt">
      <arg value="${project.rootFolder}" />
</exec>

需要定义指向

的变量

${project.batchFiles} =批处理文件所在的位置 ${project.rootFolder} =需要清理的文件夹

因此,任务将调用cmd.exe来处理批处理文件,将文件夹作为参数传递给批处理。

答案 1 :(得分:0)

使用上述建议并发现:

代码:

<echo file="CleanFolders.bat">for /d %%a in ("${dir}\subdir\*") do rmdir /s /q "%%~fa</echo>
    <exec program="CleanFolders.bat"/>