2015-02-09 45 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"