【发布时间】:2024-04-14 02:10:01
【问题描述】:
Jenkins 正在生成在 Visual Studio 中制作的 C++ 项目的构建。
在此过程中,一些.bats 被调用,其中一个是这样的结构:
SET TEMPDIR=Temp
rmdir %TEMPDIR% /S /Q
echo Don't continue if there was an error above (except the not found error which is ok) and go hand delete the dir!
:pause
mkdir %TEMPDIR%
我对批处理脚本不是很熟悉,但是当rmdir 和mkdir 都被调用时,Jenkins 会给我access denied。
我查看了构建配置以搜索任何类型的读/写权限,但似乎没有。
我该如何解决这个问题?后来其他脚本尝试访问Temp,但它们失败了,它破坏了我的构建。
【问题讨论】:
-
Temp是相对路径,那么它与什么有关? -
不太明白你的意思。
Temp是变量TEMPDIR引用的文件夹的真实名称。Temp用于存储 Visual Studio 在构建过程中生成的二进制文件。因为它给了我access denied,所以没有创建文件夹并且构建中断。 -
Temp是分配给TEMPDIR的文字,而不是%Temp%中包含的值,因此它是来自%CWD%的相对路径。 Jenkins 进程是否在其%CWD%所在的任何地方都具有特权? -
您使用
%VAR%表单来读取存储在VAR中的值。%CWD%是一个内置的cmd.exe伪环境变量。 -
@Compo,我认为你永远无法删除当前目录。
标签: batch-file jenkins mkdir access-denied rmdir