2013-07-18 186 views

回答

0

是否appcmd立即返回? 這可能會起作用,具體取決於appcmd的行爲。

start /wait "site stop" appcmd stop sites "siteName" 

如果appcmd是一個腳本,您可能可以修復它,以便它不會立即返回。

您使用的是什麼Web服務器?

0

顯然,如果您使用APPCMD,則使用IIS 7或更新版本。

  1. 我認爲你的意思是SITE而不是SITES。
  2. 您的路徑中可能有另一個文件名APPCMD。鍵入APPCMD /?看看你是否 執行你的想法。
  3. 試試這個,以確保您正在執行所需的APPCMD:

    「%WINDIR%\ SYSTEM32 \ INETSRV \ Appcmd.exe的」 一站式網站的 「網站名稱」

0

我無法弄清楚如何讓這個工作使用批處理文件。事情是這樣的威力工作:

:LoopWhileNotStopped 

for /f "delims=" %x in ('appcmd list site "siteName"') do set siteInfo="%x" 

IF NOT %siteInfo:~-16% == "state:Stopped)" 
    GOTO :LoopWhileNotStopped 

但我無法弄清楚如何修改set siteInfo="%x"命令,這樣它會爲輸出工作APPCMD命令。問題似乎是,輸出包含雙引號,並且在執行變量擴展時會干擾命令解釋。

這裏的PowerShell腳本應該工作:

C:\Windows\System32\inetsrv\appcmd.exe stop site "siteName" 

do { Start-Sleep -s 1; $siteInfo = C:\Windows\System32\inetsrv\appcmd.exe list site "siteName" } until ($siteInfo -match "state:Stopped")