当前位置: 首页 > 面试题库 >

将多行环境变量拆分为几行

鲁明知
2023-03-14
问题内容

我有以下问题:我在Jenkins服务器上执行Windows批处理文件,并且不得不将多行环境变量(通过Jenkins参数设置)拆分为单行。每行是另一个程序的参数列表的一部分:

Jenkins文本框参数

-foo 224 -bar "Some parameter with spaces"
-foo 225 -bar "another param"

应该在詹金斯内部引发以下调用:

myprog.exe -baz 0 -meow -foo 224 -bar "Some parameter with spaces"
myprog.exe -baz 0 -meow -foo 225 -bar "another param"

我尝试将其拆分,for /F但没有成功。搜索没有发现任何有用的信息,我尝试的任何操作都给了我语法错误,或者只是打印了第一行。

这是我尝试过的事情:

for /f "tokens=* delims= " %%f in ("%varname%") do

给我语法错误,因为该变量已包含引号。

echo %varname%

仅输出变量的第一行。

有任何想法吗?


问题答案:

FOR / F命令将插入变量中的LF作为行分隔符(这是FOR / F命令的自然行为),因此,使用FOR / F处理此类变量不需要任何其他操作:

@echo off
setlocal EnableDelayedExpansion

rem Create a variable containing line breaks.
set LF=^
%empty line 1/2%
%empty line 2/2%
set "str=The quick brown!LF!fox jumps over!LF!the lazy dog."

set line=0
for /F "delims=" %%a in ("!str!") do (
   set /A line+=1
   echo Line !line!: %%a
)

这里的关键是用!exclamationMarks !;扩展变量。否则,LF将削减%value%。另外,如果要用LF分隔 完整的行 ,请使用“
delims =”。输出示例:

Line 1: The quick brown
Line 2: fox jumps over
Line 3: the lazy dog.


 类似资料:
  • 问题内容: 我有一个具有这种结构的表。 我无法弄清楚我将使用哪种SQL查询来获得这样的结果集: 我正在尝试将三列分为三个单独的行。这可能吗? 问题答案: SELECT Y.UserID, Y.UserName, QuestionName = ‘AnswerToQuestion’ + X.Which, Response = CASE X.Which WHEN ‘1’ THEN AnswerToQue

  • 问题内容: 我有桌子: 我想要这样的输出: 问题答案: 如果可以创建一个数字表,其中包含从1到要拆分的最大字段的数字,则可以使用以下解决方案: 请看这里的小提琴。 如果无法创建表,则解决方案可以是: 这里有个小提琴例子。

  • 我有表: 我想要这样的输出:

  • 我是helm的新手,我希望能够使用配置映射和共享环境变量将gitlab项目变量写入文件。 我为每个环境(其中

  • 问题内容: 我已使用从IMDB收集信息并将其传输到MYSQL数据库的应用程序导入了一些数据。 似乎这些字段尚未标准化,并且在1个字段中包含许多值 例如: 有没有办法将这些值分开,然后将它们插入到另一个表中,而不重复呢? 我进行了一些谷歌搜索,发现我应该使用PHP处理此数据。但是我一点都不了解PHP。 无论如何,仅使用MYSQL即可转换此​​数据? 问题答案: 您可以使用存储过程,该过程使用游标来解

  • 问题内容: 我的问题是我有一个这样的表: c1 | c2 | c3 | c4是一个由|分隔的值。 我的最终结果应如下所示: 我该怎么做呢? 谢谢 问题答案: 这就是您可以执行的操作,使用管道将字符串拆分并使用spark函数爆炸数据 输出: 希望这可以帮助!