在批处理文件中连接字符串和变量

问题描述 投票:0回答:0

我是批处理文件的新手,需要一些帮助如何连接批处理文件中的变量和字符串。 只是为了给出背景,我正在解析一个 yaml 文件并试图在变量(Var1)中获取 yaml 文件的最后一行,它包含包的版本并且应该将相同的添加到路径变量

    @echo off

SETLOCAL DisableDelayedExpansion
FOR /F "usebackq delims=" %%a in (`"findstr /n ^^ ..\..\Config\files.yaml"`) do (
    set "var=%%a"
    SETLOCAL EnableDelayedExpansion
    set "var=!var:*:=!"
    set "var1=!var:*:=!"
    set "b=C:\Development\Amazon_"
    set "output=%b% _ %var1%"
    echo(!var!
    echo !b!
    echo !var1!
    echo !var1!>output.bat
    ENDLOCAL   
    
)

yaml文件内容如下:

project_config: 2 # file format version
name:    XXX Project

    packages:
      - id:      ABCD
        version: v1.2
      - id:      XYZ
        version: v2.2
      - id:      PQRZ
        version: v5.58
      - id:      Amazon_server_provision
        version: v2021_03_02

使用我的代码片段,我希望输出变量中的输出为 C:\Development\Amazon_v2021_03_02 当我在此处回显输出变量时它不会在屏幕上打印任何内容

但是对于当前的代码片段,我无法连接字符串和变量(输出),而且我在变量(var1)内容中有一个空格(v2023_03_02),我无法删除它,它在这里打印在另一个批处理文件(output.bat)。

有人能告诉我,这段代码有什么问题吗?

windows batch-file cmd string-concatenation
© www.soinside.com 2019 - 2024. All rights reserved.