Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 将值设置为环境变量并在Jenkins的条件插件中使用_Batch File_Jenkins - Fatal编程技术网

Batch file 将值设置为环境变量并在Jenkins的条件插件中使用

Batch file 将值设置为环境变量并在Jenkins的条件插件中使用,batch-file,jenkins,Batch File,Jenkins,我有一个小批量代码,它将可执行文件的许可证信息打印到一个文件version.txt,并检查许可证是否是产品许可给MyOrg。如果它们不相等,我显式抛出exit 1并使构建失败,否则返回变量的值。下面是工作代码 @echo off product_executable --version 1>version.txt 2>&1 FOR /F "SKIP=1 TOKENS=*" %%L IN (version.txt) DO set checkstr=%%L del /q /f v

我有一个小批量代码,它将可执行文件的许可证信息打印到一个文件
version.txt
,并检查许可证是否是
产品许可给MyOrg
。如果它们不相等,我显式抛出
exit 1
并使构建失败,否则返回变量的值。下面是工作代码

@echo off
product_executable --version 1>version.txt 2>&1
FOR /F "SKIP=1 TOKENS=*" %%L IN (version.txt) DO set checkstr=%%L
del /q /f version.txt
if NOT "%checkstr%"=="Product is licensed to MyOrg" ( EXIT 1 ) else ( ECHO %checkstr% )

但是我需要的是,我不想将变量保存到文件中并从中读取行并删除文件,而是想将它保存到环境变量中,比如说
license\u info
,并在插件中访问它,比如
${license\u info}
。但我不能这样做

您应该能够像这样批量操作,这样就不需要编写文本文件了

@echo off
FOR /F "SKIP=1 TOKENS=*" %%L IN ('product_executable --version') DO set checkstr=%%L
if NOT "%checkstr%"=="Product is licensed to MyOrg" ( EXIT 1 ) else ( ECHO %checkstr% )

但是,如果您试图完全删除批处理文件,这将没有帮助。

我过去所做的是使用,并将
key=value
信息写入

一个java.properties文件基本上就是

key_1=value_1
key_2=value_2
license_info=someinterestinglicenseinfo
key_n=value_n
字符串值不需要引号


然后,使用该插件,您可以引用该文件,可能会写入您的
${WORKSPACE}
,并以la
${license\u info}

的形式访问这些环境变量。我不知道在shell脚本(或windows批处理脚本)中创建环境变量的任何直接方法并在以后的构建步骤中提供。解决这个问题的唯一方法是将信息写在属性文件中,然后让下一个构建步骤读取属性文件。作为smlstvnh,您需要使用来读取属性文件。我在一些构建中使用了这种繁琐的方法。

checkstr在我这样执行时是空的尝试
FOR/F%%L in('product\u executable--version')DO echo%%L
查看您需要在跳过和令牌选项中添加什么。使用
获取/?
获取令牌和其他选项的帮助。