Jenkinsfile windows cmd输出变量参考

2024-01-25

我对 groovy 还很陌生。在我的Jenkinsfile我试图将 Windows cmd 输出存储在变量中,在下一个命令中使用它,但似乎没有任何效果。这是我得到的最接近的:

    pipeline {
    agent any    
    stages {        
        stage('package-windows') {
            when {
                expression { isUnix() == false}
            }
            steps {             
                script {
                FILENAME = bat(label: 'Get file name', returnStdout: true, script:"dir \".\\archive\\%MY_FOLDER%\\www\\main.*.js\" /s /b")              
                }
                bat label: 'replace content', script: "powershell -Command \"(gc \"$FILENAME\") -replace \"https://my-qa.domain.com/api/\", \"https://my-prod.domain.com/api/\" | Out-File \"$FILENAME\"\""
            }
        }
    }
}

当我做ECHO "$FILENAME"这是我得到的输出:

C:\Program Files (x86)\Jenkins\workspace\my-ui>dir ".\archive\55131c0d3c28dc69ce39572eaf2f8585996d9108\main.*.js" /s /b 
C:\Program Files (x86)\Jenkins\workspace\my-ui\archive\55131c0d3c28dc69ce39572eaf2f8585996d9108\www\main.16aedaf4c6be4e47266d.js

我只需要文件名main.16aedaf4c6be4e47266d.js在接下来的命令中使用来修改内容。但在下一个命令中"$FILENAME"是空的。如何将命令输出正确存储在变量中并在下一个命令中访问?


问题是您捕获了命令的完整输出,其中包括 2 行。第一行是 dir 命令的当前路径,第二行是所需的输出。 第一次回显命令时,您将看到命令+输出。然后后续的使用将导致看起来是空的结果,但实际上是一个混乱的行,因为 FILENAME 变量包含 2 行,每行末尾都有一个新行。

在批处理命令前面添加 @ 将防止它被回显,这就是您想要的。现在 FILENAME 变量将只有一行包含您的文件名。 尽管如此,您仍然需要从结果中删除 CRLF,否则它会扰乱您的下一个 powershell 命令。

我认为下面的脚本应该工作得更好。

pipeline {
    agent any
    stages {        
        stage('package-windows') {
            when {
                expression { isUnix() == false}
            }
            steps {             
                script {
                  FILENAME = bat(label: 'Get file name', returnStdout: true, script:"@dir \".\\archive\\%MY_FOLDER%\\www\\main.*.js\" /s /b").trim()
                }
                echo FILENAME
                bat label: 'replace content', script: "powershell -Command (gc \"$FILENAME\") -replace \"https://my-qa.domain.com/api/\", \"https://my-prod.domain.com/api/\""
            }
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jenkinsfile windows cmd输出变量参考 的相关文章

随机推荐

  • 如何忽略 svn 中的 eol 更改和所有空白?

    组合 svn diff ignore eol style 和 ignore all space 不起作用 svn diff x w ignore eol style r 1143 1177 somefile svn invalid opti
  • html.AttributeEncode 与 html.Encode 有什么区别?

    html AttributeEncode 与 html Encode 有什么区别 属性编码 http msdn microsoft com en us library system web mvc htmlhelper attributee
  • 如何将 Java 结果集转换为 JSON?

    我有一个使用 JDBC 连接器进行 MySQL 查询的结果集 所以我的工作就是将结果集转换为 JSON 格式 这样我就可以将其作为 AJAX 响应发送到客户端 有人可以解释一下如何转换为 JSON 格式吗 因为我对 Java 和 JSON
  • 是否有一个事件可以检测屏幕何时变暗?

    我正在使用 SCREEN DIM WAKE LOCK 所以我的永远不会关闭 它只是从全亮变为暗淡 有什么方法可以让我检测屏幕何时变暗 事件 接收器等 据我从Android的源代码中看到 当屏幕亮度状态改变时 没有发送广播通知
  • 在 Svelte 中将多个参数传递给动态路由

    我正在尝试使用 Svelte 的第一个项目 我遇到了这样的情况 我从 API 中获取结果列表 如下所示 Page with a list of items each item
  • C++:最大整数[重复]

    这个问题在这里已经有答案了 是否有一个 C 跨平台库为我提供可移植的最大整数 我想声明 const int MAX NUM call some library here 我使用 MSVC 2008 非托管 在C 标准库头文件中
  • 无法在 ASP.Net vNext 项目中使用会话

    我有一个使用 Session 的 ASP Net vNext 项目 但是我在尝试在会话中获取 设置值时收到此错误 Microsoft AspNet Http Core dll 中发生 System InvalidOperationExcep
  • 将图像添加到 jar 中

    我想为我的 JFrame 设置图标 我执行以下操作 Image icon Toolkit getDefaultToolkit getImage src images icon jpg this setIconImage icon 当我从 n
  • 从 C 静态库中删除内部符号

    我正在研究一些作为静态库提供的嵌入式代码 我们希望从库中删除所有内部符号 只保留 API 符号可见 这是我们想要做的一个示例 假设您有一个名为internal c和一个叫api c看起来像这样 internal c int fibonacc
  • 检查文件是否存在 Objective-C

    我使用下面的代码来检查文件是否存在 bool b NSFileManager defaultManager fileExistsAtPath filePath 这些代码可以在 IOS 上运行 但是当我将它迁移到 mac os x 时 但我通
  • 是否有关于如何命名资源的约定?

    Android 中是否有命名资源的约定 例如 按钮 文本视图 菜单等 Android SDK 将是一个很好的起点 例如 我尝试在活动中确定 ID 的范围 如果我有一个ListView它只是 android id list在所有活动中 但是
  • 将 KeyFilter 与 ASP.NET Core 2.0 结合使用

    我在简单的 ASP NET Core 2 0 WebAPI 应用程序中使用 KeyFilter 属性时遇到问题
  • 使用 ffmpeg 分割成相等的部分并转换许多 mp4 视频

    我有大量视频需要使用 ffmpeg 将 mp4 转换为 wmv 并将每个文件分成 10 分钟的片段 但我是一个 cmd 脚本新手 事实上 我是一个脚本新手 在花了六个小时试图找到答案之后 我想我会把它带给你们 我的代码可以运行一点 但我需要
  • aurelia - 示例,安装依赖项时出错

    我一直在关注 Aurelia 网站上的示例以及以下示例 http aurelia io hub html doc article aurelia framework latest contact manager tutorial 2 htt
  • 使用图像作为 JPanel 和 JButton 的背景

    我正在尝试使用在 Photoshop 中制作的图像作为 GUI 的背景 我怎么做 我还制作了一些图像 我想在执行操作后在按钮背景中显示 对于 JButton 请使用以下命令 JButton button new JButton Button
  • 如何检测/处理弯曲区域上的触摸事件?

    我从一个本机 iPad 应用程序开始 如果需要 我们可以假设 iOS 4 3 我需要有一系列相互碰撞的弯曲区域 我希望得到一些有关处理此问题的最佳方法的建议 我的一个想法是使用 WebView 并且只有一个 JPG 和一个 HTML 图像映
  • rdf:Bag、rdf:Seq 和 rdf:Alt 在使用时有何不同?

    我正在读RDF 模式 1 1 http www w3 org TR rdf schema ch bag建议 其中包括以下内容 强调是后加的 5 1 2 rdf 袋子 http www w3 org TR rdf schema ch bag
  • 机器人可以到达点 (x, y) 吗?

    我在一次求职面试中遇到了这个问题 我无法找到解决方案的正确算法 所以我在这里发布这个问题 有一个机器人可以通过以下两种方式在坐标平面上移动 假设机器人当前位置为 x y 如果方向如下 则机器人可以移动等于 x 和 y 之和的距离 x y g
  • mp3 的

    首先这是我当前正在编码的网站 http www clairereviens com http www clairereviens com 每个按钮上都有一个 mp3 样本的标签 所有 mp3 在 Safari 中都能完美播放 但在 Chro
  • Jenkinsfile windows cmd输出变量参考

    我对 groovy 还很陌生 在我的Jenkinsfile我试图将 Windows cmd 输出存储在变量中 在下一个命令中使用它 但似乎没有任何效果 这是我得到的最接近的 pipeline agent any stages stage p