2013-04-25 107 views
1

我們每晚構建將代碼加載到文件夾中(例如:C:\build\nib_sw_12) 我想在ANT從源代碼控制加載文件之前刪除之前的內容。如何在構建之前安全刪除文件夾內容

但是,有一些沒有得到刪除

  1. 由於這樣的事實,他們有很長的路徑(在嵌套的文件夾生成Java文檔文件)

  2. 一些「EXE」文件的一些文件由於以前的仍在運行構建

我想知道我怎麼能刪除文件夾&長路+殺鄰筆(exe)文件並刪除它們?

我想在sw從源代碼控制加載之前這樣做。

任何想法我可以做到這一點?

環境:贏2008 R2版x64,ANT

+0

你怎麼想刪除目錄中的PID?使用螞蟻還是詹金斯?你可以使用taskkill應用程序殺死進程。 – pepuch 2013-04-25 06:47:30

+0

ANT會更好(命令行也許?) – KK99 2013-04-25 07:01:52

+0

您是否嘗試使用''任務刪除文件?它沒有刪除長路徑中的文件? – pepuch 2013-04-25 07:02:59

回答

1

可以使用的taskkill殺進程,例如,殺app.exe過程只需運行taskkill /im "app.exe" /f /t。問題可能出在您幾乎沒有相同名稱的進程時。要刪除目錄只需使用<delete>任務,我認爲它應該刪除長路徑。

+0

我的問題是多個app.exe運行並找到正確的一個.. – KK99 2013-04-25 07:14:03

+0

嘗試找到一些程序,可以使用完整路徑app.exe ant獲取進程ID,然後使用帶有該PID的taskkill。 – pepuch 2013-04-25 07:18:23

1

需要兩個的Sysinternals工具的幫助:手柄pskill。見http://technet.microsoft.com/en-us/sysinternals/bb795533

你就可以找到該程序的被鎖定的文件

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 
+0

對不起。無法選擇2個答案:-)但+1。非常感謝 – KK99 2013-04-26 08:55:07

相關問題