2015-07-10 81 views
0

我在寫一個函數來確定我們的重啓週期。它的工作原理,但我不能得到它返回一個值(應該是1或2)。任何想法我可能做錯了什麼?PowerShell函數的返回值

function Get-BootCycle { 
$devEarliest = 8 
$devLatest = 14 
$prodEarliest = 15 
$prodLatest = 21 
$today = Get-Date 

switch ($today.DayOfWeek) { 
    Wednesday {$val = 1} 
    Thursday {$val = 2} 
    Friday {$val = 3} 
    Saturday {$val = 4} 
    Sunday {$val = 5} 
    Monday {$val = 6} 
    Tuesday {$val = 7} 
    } 

$dateVal = "'" + [string]$val + "." + ([string]$today.Hour) + "." + $today.AddMinutes(-($today.Minute % 30)).Minute + "'" 

if ($today.Day -ge ($devEarliest + $val) -and $today.Day -le ($devLatest + $val)) { 
    $bootCycle = "Development" 
    $bootCycleVal = 0 
    } 
elseif ($today.Day -ge ($prodEarliest + $val) -and $today.Day -le ($prodLatest + $val)) { 
    $bootCycle = "Production" 
    $bootCycleVal = 1 
    } 
else { 
    Break 
    } 
return $bootCycleVal 
} 
+1

FWIW,你可以只投'[INT]($至day.DayOfWeek)'而不是使用swtich – Matt

+0

我意識到這一點,但我根據我們的(微軟)補丁週週期來計算日期,所以我需要這個星期在週三開始。 – Acerbity

+0

對不起,一開始沒有看到。仍然我會用這個:'([int](Get-Date).DayOFWeek + 5)%7' – Matt

回答

3

這是因爲你的條件都沒有返回true。

基本上你正在運行到..

如果(10> = 11和10 < = 17)...... 返回false

ELSEIF(10> = 18 AND 10 < = 24 )返回false

其它中斷擊中這裏,打破

+0

啊,我的不好。該功能可行,但目前這不是一個開發或產品周。謝謝你的幫助。 – Acerbity