Reputation: 58
need help regarding delete task in nant or command which can be used in nant build file.
here is the requirement, i have multiple files and folders in a root folder. i need to delete only folders but not files..
Any idea how to do this.
Blockquote
EX : ROOT
-a.txt
-b.txt
-Folder1
-Folder2
after deletion, it should be
Blockquote
EX: ROOT-
-a.txt
-b.txt
Thanks in advance.
Upvotes: 0
Views: 343
Reputation: 58
used the above suggustions and found it out :
Code :
<echo file="CleanFolders.bat">for /d %%a in ("${dir}\subdir\*") do rmdir /s /q "%%~fa</echo>
<exec program="CleanFolders.bat"/>
Upvotes: 0
Reputation: 70941
for /d %%a in ("c:\some\root\*") do echo rmdir /s /q "%%~fa"
For each folder inside the indicated path, matching the indicated mask, remove the folder
Delete operations are echoed to console. If the output is correct, remove the echo
command to execute the rmdir commands.
To include it in a build file, and avoid problems with quoting, it is better to create a batch file to contain the command and call this batch file. That way, the batch file will be something like
@echo off
if "%~1"=="" exit /b 1
for /d %%a in ("%~1\*") do echo rmdir /s /q "%%~fa"
With the path to the folder to clean passed as argument
Then, the exec task will be something like
<exec program="cmd.exe" commandline="/c theBatchFile.cmd" workingdir="${project.batchFiles}" output="e:\my.txt">
<arg value="${project.rootFolder}" />
</exec>
The variables will need to be defined pointing to
${project.batchFiles}
= where the batch file is located
${project.rootFolder}
= the folder that needs to be cleaned
So, the task will call cmd.exe
to process the batch file, passing the folder as argument to the batch.
Upvotes: 1