PowerShell中的CMD命令。行情?

时间:2018-06-13 01:23:16

标签: powershell powershell-v4.0

您好我有一个批处理脚本,我们用它来在PowerShell中创建appx包。 脚本示例是:

CMD /c "C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\makeappx.exe" unbundle /p C:\Temp\AppxTest.appxbundle /d C:\Temp\AppxTest

我现在想在上面的命令中使用变量,但我知道PowerShell中的cmd /c不支持变量。所以我希望使用本机PowerShell命令来完成这项工作。

以下PowerShell代码是我尝试实现此功能的尝试。我似乎无法确定引号的位置,以使此命令在PowerShell中正常工作。我已尝试过很多不同的引号应该去哪里,但没有快乐。

Start-Process "C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\makeappx.exe" "unbundle /p" "C:\Temp\AppxTest.appxbundle /d C:\Temp\AppxTest"

1 个答案:

答案 0 :(得分:2)

您可以使用&从PowerShell调用任何可执行文件。

& "C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\makeappx.exe" "unbundle /p" "C:\Temp\AppxTest.appxbundle /d C:\Temp\AppxTest"

这是我的构建脚本示例,调用MSBuild:

$Msbuild = 'C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe'
$Parameters= '/t:Clean',
    '/t:Rebuild',
    '/nologo',
    "/p:VisualStudioVersion=15.0",
    "/p:Configuration=DEBUG",
    "/p:VersionAssembly=1.0.0"
$Target = '.\Solution.sln'
& $Msbuild $Target $Parameters

要使用Start-Process,您需要发送一组参数:

Start-Process -FilePath ping -ArgumentList '8.8.8.8','/t'
# same as cmd /k ping 8.8.8.8 /t