2015-02-09 21 views
0

我可以在批处理文件中启动卡西尼像这样:非阻塞IIS快递初创

start "" /B "%common%\microsoft shared\DevServer\11.0\WebDev.WebServer40.exe" /port:%port% /path:"%~dp0%svcDir%" 

这将启动不阻塞命令行。我可以在不阻止命令行的情况下启动IISExpress吗?我试着在startiis.ps1节约以下命令:

start-process "C:\Program Files (x86)\IIS Express\iisexpress.exe" /config:%userprofile%\Documents\IISExpress\config\applicationhost.config /CompanyName.ProjectName.api -windowstyle Hidden 

当我运行& ".\startiis.ps1"我收到错误:

Start-Process : A positional parameter cannot be found that accepts argument '/CompanyName.ProjectName.api'.

回答

2

一对夫妇的有关做法事......

  1. 调用环境变量在PowerShell中使用提供者$env
  2. 如果您打算使用Start-Process您需要单独您的命令和你的论点

start-process "C:\Program Files (x86)\IIS Express\iisexpress.exe" -ArgumentList "/config:$($env:USERPROFILE)\Documents\IISExpress\config\applicationhost.config /CompanyName.ProjectName.api" -WindowStyle Hidden 

Start-Process被扔一个错误,因为它没有一个第三位置参数。在你的例子中,故障是“C:\ Program Files(x86)\ IIS Express \ iisexpress.exe”占据了-FilePath,“/config:%userprofile%\Documents\IISExpress\config\applicationhost.config”占据了位置-ArgumentList。你想要所有这些作品都是争论。您可以不指定-ArgumentList。引用所有的参数作为一个字符串就足够了。

如果您不需要Start-Process的其他功能,您也可以使用调用运算符来执行。引用参数以确保它们正确解析是一个很好的做法。

& "C:\Program Files (x86)\IIS Express\iisexpress.exe" "/config:$($env:USERPROFILE)\Documents\IISExpress\config\applicationhost.config" "/CompanyName.ProjectName.api"