相关疑难解决方法(0)

两个几乎相同的批处理脚本之一中的语法错误:“)”无法在此处进行语法处理

我正在尝试为自动 Unity 构建设置 Jenkins 服务器。

因此,我编写了两个(在我看来)基本相同的批处理脚本。

这两个脚本都由 Jenkins 通过一个Execute Windows batch command步骤作为构建步骤运行

命令: E:\unityImport.bat

然后Execute Windows batch command第二步使用

命令: E:\unityBuild.bat

它们都有相同的开头,因为我需要收集一些文件路径,特别是项目的统一版本。所以在这两个脚本中,我使用完全相同的解析和字符串拆分项目版本的方式。它们之间唯一不同的是,第一个启动 Unity 并将专用的unitypackage(保存在下一步中执行的方法)导入项目,而第二个再次启动 Unity 以执行实际构建(不幸的是它没有不能一次性工作...... Unity 似乎尝试在unitypackage导入之前执行该方法)。

然而,第二个脚本总是失败并出现语法错误

")" 不能在这里进行语法处理。


我试图实现的是

  1. 读出文件的内容 %WORKSPACE%\ProjectSettings\ProjectVersion.txt

    SET /p TEST=<%WORKSPACE%\ProjectSettings\ProjectVersion.txt
    
    Run Code Online (Sandbox Code Playgroud)

    的内容%TEST%通常看起来像例如

    m_EditorVersion: 2019.3.4f1
    
    Run Code Online (Sandbox Code Playgroud)

    ECHO. ProjectVersion.txt = %TEST%看起来像

    ProjectVersion.txt = m_EditorVersion: 2019.3.4f1
    
    Run Code Online (Sandbox Code Playgroud)
  2. 字符串拆分以便只取包含版本号的最后一部分

    for %%x in (%TEST::= %) do (
        SET "VALUE=%%x"
        SET "UNITY_VERSION=!VALUE:~0,-2!" 
    )
    
    Run Code Online (Sandbox Code Playgroud)

    所以%UNITY_VERSION%通常包含例如2019.3.4. 我不会拆分更多,因为也有两位数的 Unity 版本,例如 …

batch-file unity-game-engine jenkins

5
推荐指数
1
解决办法
481
查看次数

标签 统计

batch-file ×1

jenkins ×1

unity-game-engine ×1