背景:通过Jenkins job去删除指定机器(node)的文件目录
Step1: 创建Jenkins job - 选择Freestyle project(自由风格)
Step2: 选择node节点
用来指定要删除的机器,如果你的jenkins没有这个选项,要下载插件Node and Label parameter plugin
Step3: 添加String参数
这个参数是用来指定要删除的目录的,要选择String类型的
参数名随意,与后面的cmd命令保持一致即可。我这里写的是path
value写的是要删除的文件路径,如果要删除多个文件,则用 - 号隔开(也不一定要-号,也可以设置*或者&等,但要与脚本写的分隔符要一致哦)
Step4: 选择build - Execute Windows batch command
写入以下命令
@echo off
cd /d e:/script
delfolder.bat %path%
上面的e:/script是指你存放bat文件的目录,delfolder.bat就是真正是执行删除文件的脚本了。
至此,jenkins job的设置到此结束
可选:可以设置每天零点定时清理
Step5:创建bat文件
我的是在e:/script目录下创建delfolder.bat,内容为:
setlocal enabledelayedexpansion
set str=%path%
set remain=%str%
echo %remain%
:loop
for /F "tokens=1* delims=-" %%a in ("%remain%") do (
echo ***The file to be deleted is %%a***
del /f /s /q %%a\*.*
rd /s /q %%a
set remain=%%b
)
if defined remain goto :loop
注意脚本里面的path变量是与Jenkins设置的变量名保持一致
delims=-是指以-作为分隔符,也与Jenkins job里面的path变量里面的分隔符保持一致。