2013-04-12 51 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