我有以下代码行。我想设置相对路径而不是硬编码路径,如下面第二个参数中设置的那样 -
.YelloBox {
width: 515px;
height: 602px;
opacity: 0.3;
background-color: #ffffff;
background-color: var(--white);
border: solid 1px #a28c77;
border: solid 1px var(--reddish-grey);
text-align: center;
margin: 0 auto;
display: table;
}
应替换为:
sysExecCmd("Unlock_Ecu.bat","","D:\\Program Files\\ToolPath");
如何在Capl的sysExecCmd函数中执行此操作?
答案 0 :(得分:2)
我通常按以下方式执行:
variables
{
char absPath[256]; // Holds Abs Path for current CFG file
// Relative Path for ToolPath folder
char ToolPath[100]= "\\ToolPath\\";
}
on preStart
{
/* Get Abs path of current config file */
GetUserFilePath("", absPath, 256);
Exec_Batch();
}
void Exec_Batch()
{
/* Get Absolute Path for executing Bat file */
char absToolPath[256];
strncat(absToolPath, absPath, strlen(absPath));
strncat(absToolPath, ToolPath, strlen(absToolPath) + strlen(ToolPath));
write("Executing Batch File");
sysExecCmd("Unlock_Ecu.bat","",absToolPath);
write("Finished execution of Batch File");
}
答案 1 :(得分:1)
从sysExecCmd
文档(强调我的):
要避免CAPL代码中的绝对路径并独立于执行平台,请按以下步骤操作:
将要启动的应用程序添加到“CANoe选项”对话框中的“用户文件”。 在应用程序调用时,可以使用CAPL函数
GetUserFilePath
来解析绝对路径。
示例:
char absPath[256];
GetUserFilePath("Unlock_Ecu.bat", absPath, 256);
SysExecCmd(absPath, "");