【发布时间】:2015-11-30 17:12:46
【问题描述】:
我正在尝试使用 Powershell 作为我在 Windows 10 中的主要 shell。大多数情况下它运行良好,但有些事情导致我回到旧的命令提示符,我希望他们不会这样做。
我正在尝试使用 cmake 创建 Visual Studio 解决方案。这是在命令提示符下正常工作的命令行(为了清楚起见,分成几行)
cmake .. -G "Visual Studio 14 2015" -A x64
-DBOOST_ROOT=d:\boost\1_59_0
-DBOOST_LIBRARYDIR=d:\boost\1_59_0\lib64
当我从 Powershell 运行相同的命令时,cmake 抱怨我没有指定 BOOST_ROOT。
我尝试使用& cmake ...,我尝试在所有-D 周围加上引号(如here 所述) - 没有任何效果。我只是不能让 Powershell 将命令行按原样传递给 cmake。
有没有办法告诉 Powershell 将 'cmake' 后面的文本直接传递给 cmake 而无需任何进一步处理?请注意,我不能在所有参数周围加上引号,因为它们已经包含引号(-G...)。如果我在所有内容都加上单引号 - 它仍然不起作用。
【问题讨论】:
-
这是您在问题中的完整命令吗?我试过你的命令,用 cmake 代替一个叫做 echoargs 的程序,它只是打印回它得到的参数。看来 powershell 正确传递了所有参数。
-
你试过转义参数
--%吗? (适用于 PS V3) -
@DanL,是的,这是我的全部命令。从命令提示符工作,从 Powershell 失败。
-
你可以试试这个
Start-Process cmake -ArgumentList "-G ""Visual Studio 14 2015"" -A x64 -DBOOST_ROOT=d:\boost\1_59_0 -DBOOST_LIBRARYDIR=d:\boost\1_59_0\lib64" -
我必须添加 -NoNewWindow 标志,但是是的 - 它有效。等我完成后按回车...
标签: powershell