如何在构建之前安全地删除文件夹内容

时间:2013-04-25 06:38:21

标签: batch-file ant build delete-file

我们的每晚构建会将代码加载到一个文件夹中(例如:C:\build\nib_sw_12) 我想在ANT从源代码控制加载文件之前删除之前的内容。

但是有一些文件没有被删除

  1. 由于它们有很长的路径(在嵌套文件夹下生成的java doc文件)

  2. 由于以前的构建,某些“exe”文件仍在运行

  3. 我想知道如何删除文件&具有长路径的文件夹+查杀打开(exe)文件并删除它们?

    我希望在从源代码控制加载sw之前执行此操作。

    我有什么想法可以做到这一点?

    环境:赢取2008 R2 x64,ANT

2 个答案:

答案 0 :(得分:1)

您可以使用taskkill终止进程,例如,只需运行app.exe即可终止taskkill /im "app.exe" /f /t进程。问题可能是您将拥有几个具有相同名称的进程。要删除目录,只需使用<delete>任务,我认为它应删除长路径。

答案 1 :(得分:1)

您需要两个 sysinternals 工具的帮助:处理 pskill 。见http://technet.microsoft.com/en-us/sysinternals/bb795533

然后你可以找到锁定文件的程序的pid

for /f "tokens=3 skip=4" %%a in ('handle my_file.dat') do echo %%a

并杀死它

for /f "tokens=3 skip=4" %%a in ('handle my_file.dat') do pskill %%a