我正在尝试为自动 Unity 构建设置 Jenkins 服务器。
因此,我编写了两个(在我看来)基本相同的批处理脚本。
这两个脚本都由 Jenkins 通过一个Execute Windows batch command步骤作为构建步骤运行
命令: E:\unityImport.bat
然后Execute Windows batch command第二步使用
命令: E:\unityBuild.bat
它们都有相同的开头,因为我需要收集一些文件路径,特别是项目的统一版本。所以在这两个脚本中,我使用完全相同的解析和字符串拆分项目版本的方式。它们之间唯一不同的是,第一个启动 Unity 并将专用的unitypackage(保存在下一步中执行的方法)导入项目,而第二个再次启动 Unity 以执行实际构建(不幸的是它没有不能一次性工作...... Unity 似乎尝试在unitypackage导入之前执行该方法)。
然而,第二个脚本总是失败并出现语法错误
")" 不能在这里进行语法处理。
我试图实现的是
读出文件的内容 %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)字符串拆分以便只取包含版本号的最后一部分
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 版本,例如 …