我的jenkins工作中有一个批处理脚本。除此之外,它还将命令的输出存储到变量中。一开始它工作,但在我的批处理文件增长后,它停止工作 - 但我没有更改我设置变量的行,所以我不知道它为什么现在失败。
DEL /S /F /Q node_modules > NUL
DEL /S /F /Q dist > NUL
for /f "tokens=1,*" %%a in ('git log --oneline -1') do set LAST_COMMIT_MESSAGE=%%b
set EXECUTE_BUILD=false
if "%IGNORE_LAST_COMMIT_MESSAGE%" == "true" (
set EXECUTE_BUILD=true
)
if not "%NIGHTLY_BUILD_COMMIT_MESSAGE%" == "%LAST_COMMIT_MESSAGE%" (
set EXECUTE_BUILD=true
)
if "%EXECUTE_BUILD%" == "true" (
if "%VERSION_ENV%" == "prerelease" (
for /f %%i in ('call npm --no-git-tag-version version %VERSION_ENV%') do set MODULE_VERSION=%%i
) else (
for /F %%i in ('call git tag -l') do git tag -d %%i
call git fetch -t
for /f %%i in ('call npm version %VERSION_ENV%') do set MODULE_VERSION=%%i
)
set MODULE_VERSION=%MODULE_VERSION:~1%
echo modver: "%MODULE_VERSION%"
echo|set /p="%MODULE_VERSION%" > C:/path/to/a/file
call npm install grunt
call npm install -g grunt-cli
call npm install
call grunt build
cd dist
call npm publish
cd ..
call git commit -am "%NIGHTLY_BUILD_COMMIT_MESSAGE%"
)
echo modver: "%MODULE_VERSION%"
打印我的modver: ""
(我的文件为空)。但是几天前,当我的剧本中没有所有这些if条件时,它就起作用了。