在 Rascal 中使用 exec 函数时更改工作目录

Changing the working directory when using the exec function in Rascal

我在 Windows10(一些批处理文件)上在 Rascal 中执行一个命令,它本身工作正常:

import util::ShellExec;
exec("somecommand.bat");

这个批处理文件在当前工作目录中执行一些文件读写操作。通过一些调试,我发现默认工作目录 (|cwd:///|) 是 C:\Program Files\Eclipse 并且此目录需要提升权限才能写入。我正在尝试在执行命令时更改工作目录,如下所示:

exec("somecommand.bat", |tmp:///|);

我尝试了多种目录,但它们都产生了 CallFailed 错误,但没有太多细节。

如何在不同的工作目录中执行命令?

工作目录参数是所谓的“关键字参数”,您可以使用以下语法调用它:

exec(command, workingDir=|file:///myworkingdir|)