-
Notifications
You must be signed in to change notification settings - Fork 1
/
serv.bat
58 lines (49 loc) · 1.47 KB
/
serv.bat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
@ECHO OFF
IF "%1"=="" GOTO DIRECT
IF "%2"=="" GOTO DIRECT
IF NOT EXIST "%1" GOTO NOTFOUND
GOTO START
REM == How RESTART_9X and RESTART_NT works =========================
REM On Windows 9x only the first 8 characters are significant for
REM labels, and the first matching one is called (RESTART_(9X)).
REM Windows NT calls the exact named label (RESTART_NT).
REM Separation between 9X and NT is required, because CHOICE has
REM different syntax on these platforms or does not exist as all.
REM ================================================================
REM Windows 95, 98, ME
:RESTART_9X
REM Old Ctrl+C in PING does not work, because that only stops ping,
REM not the batch file.
CHOICE /C:rc /N /T:R,15 Restarting in 15 seconds, press 'C' to cancel.
IF NOT ERRORLEVEL 2 GOTO START
GOTO END
REM Windows 2000, XP, Vista, 7
:RESTART_NT
REM There is no CHOICE in 2000 and XP, but you get asked whether to
REM abort the batch file, when pressing Ctrl+C in PING.
ECHO 15秒后重启, 按 Ctrl+C 来取消.
PING -n 15 127.0.0.1 > NUL
:START
%1
ECHO.
REM Return value > 1 is exception&~0xC0000000
IF ERRORLEVEL 2 GOTO CRASHED
REM Return value 1 is EXIT_FAILURE
IF ERRORLEVEL 1 GOTO EXIT1
REM Return value 0 is EXIT_SUCCESS
ECHO %2 成功关机.
GOTO RESTART_NT
:EXIT1
ECHO %2 非正常终止.
GOTO RESTART_NT
:CRASHED
ECHO %2 宕机!
GOTO RESTART_NT
:DIRECT
ECHO 请勿直接运行本文件.
GOTO END
:NOTFOUND
ECHO %1 未找到, 请确认文件 %2 存在.
GOTO END
:END
PAUSE