2015-12-05 115 views
0

我不知道如何編寫bat文件進行時間比較。以cmd爲單位的時間比較

bat文件是爲了得到當前時間,如果現在的時間是00:00或之後但在7:00之前,bat文件將發送命令關閉計算機,否則它將不執行任何操作。

set "currentTime=%TIME% 
set flag=false 
if %currentTime% geq 07:00 if %currentTime% leq 00:45 set flag=true 
if %flag%==true (
    shutdown -s 
) else (
    shutdown -a 
) 

請幫忙,我是一個新手,謝謝。

+0

'if%time :: =%geq 004500.00 if%time :: =%leq 070000.00 set flag = true' – Aacini

回答

0

您的代碼行

if %currentTime% geq 07:00 if %currentTime% leq 00:45 set flag=true 

比較,作爲一個字符串,當前時間爲「07:00」,然後爲「00:45」,如果目前的時間是晚 07:00 和更早的比00:45,執行shutdown -s,否則執行shutdown -a

由於時間不可能是兩者都是,那麼它將始終遵循else路徑。

但是,無論代碼是否設置爲執行關閉,所以它不能像你聲稱的那樣「無所事事」。

也許你關機07:00前,但具有不同參數,如果它之前00:45

if %currentTime% lss 07:00 (
if %currentTime% leq 00:45 (
    shutdown -s 
) else (
    shutdown -a 
) 
) 

shutdown -s 00:45前shutdown -a如果晚於00:45,但很07:00之前

您的下一個問題是您不告訴我們您使用了哪種tme-formt。它可以使用24小時的時間或12小時的時間,並有可能使用領先的「0」的時間,或更換與空間

領先0不知道你用什麼樣的格式,有四種轉換或比較的可能性。以上應該使用24小時制,領先0。

+0

感謝您的幫助。將使用24小時tme-formt,並且我想在00:45之後但在07:00之後關閉計算機。它的計算機將在00:45至7:00關閉,在7:01 - 00:44運行。 –

+0

'if%currentTime%leq 07:00 if%currentTime%geq 00:45 shutdown -s' should do that - * shutdown *參數取決於您。這應該將當前時間與字符串'07:00'進行比較,如果小於或等於,則比較時間與'00:45',如果它大於或等於*那個*字符串,則執行'shotdown'否則什麼都不做。 – Magoo

+0

感謝您的幫助。 –