繁体   English   中英

nant删除子文件夹排除文件

[英]nant delete subfolders exclude files

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

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

任何想法如何做到这一点。

块引用

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

删除后,应该是

块引用

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

提前致谢。

    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处理批处理文件,并将文件夹作为参数传递给批处理。

使用上述建议并发现:

代码:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM