Доступ к переменным времени выполнения в bat "" "в декларативном конвейере Jenkins - PullRequest
0 голосов
/ 23 апреля 2020

У меня ниже конвейерная работа, где я пытаюсь получить доступ к переменной "file", в течение l oop. Но это не значение файла печати. Не могли бы вы помочь исправить это.

pipeline
{
    agent {
                 node {
                    label "node1" 
                    // customWorkspace "${workspace}" 
                }
            }
    stages{
        stage ('test1') {
            steps{
            bat """
            @echo on
            setlocal EnableDelayedExpansion
            FOR /f "delims=;" %%a IN ('type F:\\node1\\workspace\\Declarative\\unformattedfiles.txt') do (
                        setlocal enabledelayedexpansion
                        set "file=%%a"
                        echo "file is %file%"
                        echo "file is !file!"
                        echo [!file!]
                        echo "file is ${env.file}"
                        echo "%file:/=\\%"
                        @REM if condition to remove trailing spaces in path
                        @REM if "!file:~-1!"==" " set file=!file:~0,-1!
                        @REM change Linux file pth to windows file path
                        @REM echo %file:/=\\%
                        echo %file%
                        ENDLOCAL
                        ) > "F:\\node1\\workspace\\Declarative\\formattedfiles.txt"
            """
        }

        }

    }

}

Содержимое входного файла:; folder1 / test1.txt

Вывод:

 set "file=folder1/test1.txt"  
 echo "file is "  
 echo "file is !file!"  
 echo [!file!]  
 echo "file is null"  
 echo "/=\"  
...