2013-04-12 76 views
0

我寫了這個鬧鐘腳本,因爲我很無聊,但現在我想知道它是否可以如此好,你會如何改善它?我是新來的編碼,並不真正知道壞代碼的好代碼。 感謝您的幫助!你會如何改善這段代碼?

@ECHO OFF 
color 0a 
cls 
echo Ezlo alarm system 
echo The curent time is: %time% 
set /p INPUT=What time should the alarm be set for? (24hr) 
:time 
cls 
echo Ezy alarm 
echo The curent time is: %time% 
Echo Alarm is set for %input% 
if '%TIME%'=='%INPUT%' GOTO ALARM 
GOTO time 
:ALARM 
ECHO get up! 
start "D:\Users\nic\Desktop\ezlo alarm\alarmtone.mp3" 
echo press space to close 
PAUSE >nul 
+4

我會完全改善它[像這樣](http://stackoverflow.com/a/15926674/1683264)。 – rojo

+0

大聲笑。此外,我注意到在今天的另一個答案中推薦AutoHotKey時,AHK聲稱能夠控制音量......所以在那裏可能有一個答案;將所有內容寫入AHK腳本 –

回答

0

儘管Rojo的JScript混合體非常誘人,但它基本上重寫了腳本。

通常,您應該通過腳本進行評論,儘管它非常簡單。我會讓你知道的。

一個問題。 %time%變量包含小時,分鐘,秒毫秒。而且,您的循環可能需要超過一毫秒才能循環。這意味着您的鬧鐘將不可能發生。我會盡快解決。

另一件事是有人可能不知道24小時的時間是什麼,所以你應該給他們在括號內的格式(hh:mm:ss)。另外,爲了避免將來出現一些問題,您應該總是跳過括號^(hh:mm:ss^)

另一件事,如果用戶沒有輸入任何值,你的腳本將崩潰,所以你應該有錯誤檢查。

現在,如何解決毫秒問題。我建議你使用子串去除毫秒。因此,請將所有出現%time%替換爲%time:~0,8%。只是一個提示,不要用雙引號包圍它,否則可能會失敗。

現在,我做到了這一點,因爲我很無聊,但這不是正確的網站。下次請到Code Review