所以我有了这个函数,我用它来在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]);