我可以在批处理文件中启动Cassini,如下所示:
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:找不到接受的位置参数 参数'/CompanyName.ProjectName.api'。
答案 0 :(得分:2)
关于你的方法的一些事情......
$env
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
因为没有第3个位置参数而抛出错误。在您的示例中,细分是“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"