2016-11-10 60 views
0

當談到腳本時,我仍然是一個新手,但已經走了很長的路。我需要對以下內容進行嘗試/捕捉,但是對此感到困惑。我展示的所有研究結果都顯示-ErrorAction Stop ....但在這種情況下,如果出現錯誤......繼續......我想。這是dealio。 腳本的這部分檢查網站是否存在,如果不存在.... GREAT ...繼續執行腳本。如果存在,停止並寫出一些東西並在那裏結束腳本。 所以TRY/CATCH令我感到困惑。你能幫我嗎?Try/Catch ...但想繼續出錯,而不是-ErrorAction Stop

$URLis = "https://ourdevsite.dev.com/sites/$myVar" 

add-pssnapin microsoft.sharepoint.powershell -ea 0 

If (-not(Get-SPWeb $URLis)){ 
    Write-Host "Site does not exist, so we can proceed with building it" -foregroundcolor green 
    } 
Else { 
Write-Host "Site does exist, so we need to pick another URL" -foregroundcolor red 
} 

回答

0

你並不需要改變ErrorAction,只需使用exit關鍵字停止腳本:

add-pssnapin microsoft.sharepoint.powershell 

$URL = "https://ourdevsite.dev.com/sites/$myVar" 

If (Get-SPWeb $URL) { 
    Write-Host "Site does exist, so we need to pick another URL" -foregroundcolor red 
    exit 
} 
Else { 
    Write-Host "Site does not exist, so we can proceed with building it" -foregroundcolor green 
} 

我沒有SharePoint環境中,所以我假設你Get-SPWeb檢查已經工作並返回真/假。

+0

那麼嘗試/抓住沒有必要? –

+0

您只需要使用[Try Catch Finally](http://www.vexasoft.com/blogs/powershell/7255220-powershell-tutorial-try-catch-finally-and-error-handling-in-powershell)即可陷阱並處理錯誤。如果沒有匹配的站點,Get-SPWeb只返回'false'而不是錯誤,所以只需使用簡單的'If'語句來測試返回'true'是你所需要做的。 –

+0

如果您對我的答案滿意,可以將其標記爲已接受。要做到這一點,點擊答案旁邊的灰色「勾號」圖標。如果將來遇到這個問題,它會變成綠色並幫助其他人找到答案。這是一個很好的做法,在堆棧上做到這一點:) –