您好我有一个批处理脚本,我们用它来在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"
答案 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