我如何通过双引号命令行开关Process.run()?



所以我有了这个函数,我用它来在Brave Browser中启动url。我希望能够使用——profile-directory开关在特定的配置文件中启动我的url,但是Dart对我的参数中的引号的处理方式不同。下面是我要执行的命令:

start brave --profile-directory="Profile 1" "https://example.com"

Dart代码是:

Process.run(
"start",
[
'brave',
'--profile-directory="Profile 1"',
url,
],
runInShell: true,
);

但是,它用""代替了我的双引号。我看到一个错误对话框,说"Windows cannot find 1" ". Make sure you typed the name correctly, and then try again.

我试图通过使用'"Profile 1"'来逃避它们,但这也没有帮助。这种情况持续了一段时间,但现在发生了一些不寻常的事情。同样的命令在配置文件选择窗口中启动Brave,让我选择一个配置文件。

我也试着传递这样的参数:['brave', '--profile-directory', '"Profile 1"']。这个命令甚至不会启动brave。

如何使用Process.run()正确执行所述命令?我在Windows上使用Flutter。

找到解决方案:

不使用start命令和runInShell,使用直接的exe引用直接在可执行文件中传递参数,修复了这个问题。

Process.run(
'C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe --profile-directory="Profile 1"',
[url]);

相关内容

  • 没有找到相关文章

最新更新