【问题标题】:Write a batch script to edit text in a .cs file编写批处理脚本来编辑 .cs 文件中的文本
【发布时间】:2013-01-22 15:53:33
【问题描述】:

我想知道是否有人知道如何编写批处理脚本来编辑 .cs 文件中的某些文本。 我想要做的是更改 "AssemblyVersion("1.0.0.0")" "AssemblyVersion("1.0.0.x")" 其中 x++ 每次构建詹金斯的工作。 最好的问候一月

【问题讨论】:

  • 我假设你在 windows 上运行 jenkins。我不是 100% 确定,但我敢打赌你可以用 powershell 做到这一点。
  • 有比cmd更好的工具,看看这个答案:stackoverflow.com/a/3517135/34148
  • 问题是一切都建立在一个windows服务器上,它充当hudson的奴隶。另一方面,Hudson 是一个 linux 服务器。只是尝试直接在 hudson 上构建所有内容(使用 msbuild 插件),它工作正常,除了完全为空的 assemblyfileinfo.cs 文件。我想这是因为我必须在 hudson 上安装 MSBuildTasks,而我还没有针对那个 atm 的解决方案。

标签: batch-file jenkins c#


【解决方案1】:

远离“批处理文件自动化” - 只会让你伤心。
(首先,不同版本的 Windows 支持不同的批处理命令集)

您应该在脚本中将内部版本号作为一个环境变量 -
使用“内置”%BUILD_NUMBER% 参数或使用
设置您自己的格式 Formatted Version-Number Plugin

如果您确实需要编辑那个“CS”文件,我建议使用 PerlPowerShell

干杯

【讨论】:

    【解决方案2】:

    您只想为此使用批处理脚本吗?您也可以使用 Execute Groovy Script 选项并编写一些简单的 groovy 脚本来实现此目的

    file = new File("folder/path/myfile.cs")
    fileText = file.text;
    fileText = fileText.replaceAll(srcExp, replaceText);
    file.write(fileText);
    

    您还可以使用 jenkins 作业中的可用环境变量来构建替换文本。这些变量将出现在 /env-vars.html

    【讨论】:

    • 如何迭代 jenkins 变量以将它们中的每一个替换为文件中的值?
    猜你喜欢
    • 2012-12-28
    • 2022-12-15
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    • 2013-08-26
    • 1970-01-01
    • 2013-09-01
    相关资源
    最近更新 更多