在Jenkins触发bat文件-批处理字符串+循环去删除多个文件目录

背景:通过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变量里面的分隔符保持一致。

猜你喜欢

转载自blog.csdn.net/fenger_c/article/details/115482189
今日推荐