Batch file 使用Pertical目录中的jenkins为每个EAR文件生成创建新文件夹

Batch file 使用Pertical目录中的jenkins为每个EAR文件生成创建新文件夹,batch-file,Batch File,我正在使用批处理文件生成EAR文件。但每次它都会覆盖上一个EAR文件。我需要根据特定的时间戳为每个创建的EAR文件创建新文件夹 请提供帮助。以YYYYMMdd格式创建文件夹(自windows 2000以来,每台windows计算机上都可以运行尽可能高的兼容性,且不受时间设置的影响): @echo关闭 setlocal enableDelayedExpansion pushd“%temp%” makecab/D RptFileName=~.rpt/D InfFileName=~.inf/f nul

我正在使用批处理文件生成EAR文件。但每次它都会覆盖上一个EAR文件。我需要根据特定的时间戳为每个创建的EAR文件创建新文件夹


请提供帮助。

以YYYYMMdd格式创建文件夹(自windows 2000以来,每台windows计算机上都可以运行尽可能高的兼容性,且不受时间设置的影响):

@echo关闭
setlocal enableDelayedExpansion
pushd“%temp%”
makecab/D RptFileName=~.rpt/D InfFileName=~.inf/f nul>nul

对于('find/i“makecab”^中的/f“tokens=3-7”%%a,我想在这里给出一个更好的想法,在分析您的输入之后,您正在使用Jenkins构建ear文件,因此使用Jenkins中预定义的Jenkins环境变量每次创建一个新文件夹。 在构建ear文件的代码开头的下面两行

cd%workspace%
MD“%BUILD\u NUMBER%\u%日期:~10,4%%日期:~4,2%%日期:~7,2%”

  • BUILD_NUMBER-是一个jenkins预定义变量,具有当前 每次生成唯一作业的编号
date命令:将在windows中为您提供日期,但对于格式,已完成其他更改。日期的结果将为YYDDMM格式

  • 工作空间:是一个jenkins预定义变量,它将给出
    生成使用的路径/位置,即数据的物理路径

到目前为止,您都尝试过什么代码?发布您的代码!您好,我试过使用MD%BUILD\u NUMBER%\u%date:~10,4%%date:~4,2%%date:~7,2%。为了解释更多。如果我在jenkins有2个工作,而BUILD 1发生在工作1中,并且当我尝试在job2中触发BUILD 1时,它给出了C:*\.jenkins\workspace\ReviewWorkFlow\u Development>MD 14\u 20150610一个子目录或file 1_20150610已经存在………我需要做什么??从它引用的位置。请帮助。如何使用日期和时间创建………EAR正在C:\path中生成。我需要创建一个带有时间和日期的文件夹,以便我们不会丢失每个生成的EAR文件。@geetha-time也添加了。build\u ID没有生成时间stampHi,我在jenkins中有3个作业。如果当job2尝试触发第三次生成时,build ex 3已经在job1中生成,则获取子目录或文件3已经存在。我需要带有时间stampHi的生成编号,C:*\.jenkins\workspace\ReviewWorkFlow\u Development>MD 14\u 20150610子目录或文件14\u 20150610已经存在………我需要做什么它引用的位置。请帮助如何使用日期和时间创建。找到您的问题,解决方法是使用“报价”。请尝试上面更新的代码
@echo off
setlocal enableDelayedExpansion
pushd "%temp%"
makecab /D RptFileName=~.rpt /D InfFileName=~.inf /f nul >nul
for /f "tokens=3-7" %%a in ('find /i "makecab"^<~.rpt') do (
   set "current-date=%%e-%%b-%%c"
   set "current-time=%%d"
   set "weekday=%%a"
)
del ~.*
popd
set "current-date=%current-date:-=%"
set "YYYY=%current-date:~0,4%"
set "MM=%current-date:~4,3%"
set "dd=%current-date:~7,2%"

echo %current-time%

set MN=0
for %%# in (Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec) do (
  set /a MN=MN+1
  echo %%#-%MM%
  if "%%#" EQU "%MM%" (
    goto :break
  )
)
:break

if %MN% LSS 10 set MN=0%MN%


echo making directory %YYYY%%MN%%dd%%current-time::=%
md %YYYY%%MN%%dd%%current-time::=%
pause