⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mkver.bat

📁 基于ntp协议的网络时间服务程序
💻 BAT
📖 第 1 页 / 共 2 页
字号:
		goto VER_GET_CSET	:VER_FROM_M4	REM Get version from version.m4 file, which contains a line reading e.g.	REM m4_define([VERSION_NUMBER],[4.2.0b-rc1])	FOR /F "TOKENS=4 DELIMS==[] " %%a IN ('findstr  "VERSION_NUMBER" ..\..\..\version.m4') DO @SET VER=%%a	echo --- %VER% ---:VER_GET_CSET	REM Now we have the version info, try to add a BK ChangeSet version number		REM ** Check if BK is installed ...	bk -R prs -hr+ -nd:I: ChangeSet 2> NUL > NUL	IF ERRORLEVEL 1 GOTO NOBK	REM ** Try to get the CSet rev directly from BK	FOR /F "TOKENS=1 DELIMS==" %%a IN ('bk.exe -R prs -hr+ -nd:I: ChangeSet') DO @SET CSET=%%a:NOBK	REM ** If that was not successful, we'll take a look into a version file, if available	IF EXIST ..\..\..\version ( 		IF "%CSET%"=="" FOR /F "TOKENS=1" %%a IN ('type ..\..\..\version') DO @SET CSET=%%a	)	REM ** Now, expand our version number with the CSet revision, if we managed to get one	IF NOT "%CSET%"=="" SET VER=%VER%@%CSET%			REM We can add a "crypto" identifier (-o) if we see that Crypto support is included in our build	IF NOT EXIST ..\include\config.h goto ERRNOCONF	FOR /F "TOKENS=1-3 " %%a IN ('findstr /R "^#define\ OPENSSL" ..\include\config.h') DO @SET SSL=%%c	IF "%SSL%"=="1" SET VER=%VER%-oREM *****************************************************************************************************************REM Check for user settings regarding the time and date format, we use the registry to find out...REM *****************************************************************************************************************	REM Any temporary files left from a previous run? Go where you belong...	IF exist userset.reg del userset.reg	IF exist userset.txt del userset.txt		regedit /E userset.reg "HKEY_CURRENT_USER\Control Panel\International"	IF not exist userset.reg goto ERRNOREG	rem *** convert from unicode to ascii if necessary	type userset.reg > userset.txt	FOR /F "TOKENS=1-9 DELIMS== " %%a IN ('findstr "iDate" userset.txt') DO SET DATEFORMAT=%%b	FOR /F "TOKENS=1-9 DELIMS== " %%a IN ('findstr "iTime" userset.txt') DO SET TIMEFORMAT=%%b	FOR /F "TOKENS=1-9 DELIMS== " %%a IN ('findstr /R "sDate\>" userset.txt') DO SET DATEDELIM=%%b	FOR /F "TOKENS=1-9 DELIMS== " %%a IN ('findstr /R "sTime\>" userset.txt') DO SET TIMEDELIM=%%b		IF "%TIMEFORMAT%"=="" GOTO ERRNOTIME	IF "%DATEFORMAT%"=="" GOTO ERRNODATE	IF "%TIMEDELIM%"=="" GOTO ERRNOTIME	IF "%DATEDELIM%"=="" GOTO ERRNODATE	SET TIMEDELIM=%TIMEDELIM:~1,1%	SET DATEDELIM=%DATEDELIM:~1,1%	SET TIMEFORMAT=%TIMEFORMAT:~1,1%	SET DATEFORMAT=%DATEFORMAT:~1,1%	REM *****************************************************************************************************************REM Well, well. Its time to look at the time and format it in a standard way (if possible)REM *****************************************************************************************************************	FOR /F "TOKENS=1-4 DELIMS=%TIMEDELIM% " %%a IN ('echo %MYTIME%') DO SET AA=%%a&SET BB=%%b&SET CC=%%c&SET DD=%%d	REM 12H Format	IF "%TIMEFORMAT%" == "0" (		SET HOUR=%AA%		SET MIN=%BB%		FOR /F "USEBACKQ TOKENS=1 DELIMS=ap" %%a IN ('%BB%') DO SET MMIN=%%a		SET SEC=%CC%		SET SUBSEC=%DD%	)	REM Get rid of the "a" or "p" if we have one of these in our minute string	IF NOT "%MMIN%"=="%MIN%" FOR /F "USEBACKQ TOKENS=1 DELIMS=ap " %%a IN ('%MIN%') DO SET MIN=%%a	REM 24H Format	IF "%TIMEFORMAT%" == "1" (		SET HOUR=%AA%		SET MIN=%BB%		SET SEC=%CC%		SET SUBSEC=%DD%	)	IF "%HOUR%"=="" GOTO ERRNOTIME	IF "%MIN%"=="" GOTO ERRNOTIME		IF "%SEC%"=="" SET SEC=00	IF "%SUBSEC%"=="" SET SUBSEC=00REM *****************************************************************************************************************REM It's time to format the date :-)REM *****************************************************************************************************************	FOR /F "TOKENS=1-4 DELIMS=./- " %%a IN ('ECHO %MYDATE%') DO SET AA=%%a&SET BB=%%b&SET CC=%%c&SET DD=%%d	IF "%DD%" == "" (		REM No Day of Week in Date		( IF "%DATEFORMAT%" == "0" SET DOW=_&SET DAY=%BB%&SET NMM=%AA%&SET YEAR=%CC% )		( IF "%DATEFORMAT%" == "1" SET DOW=_&SET DAY=%AA%&SET NMM=%BB%&SET YEAR=%CC% )		( IF "%DATEFORMAT%" == "2" SET DOW=_&SET DAY=%CC%&SET NMM=%BB%&SET YEAR=%AA% )	) ELSE (		( IF "%DATEFORMAT%" == "0" SET DOW=%AA%&SET DAY=%CC%&SET NMM=%BB%&SET YEAR=%DD% )		( IF "%DATEFORMAT%" == "1" SET DOW=%AA%&SET DAY=%BB%&SET NMM=%CC%&SET YEAR=%DD% )		( IF "%DATEFORMAT%" == "2" SET DOW=%AA%&SET DAY=%DD%&SET NMM=%CC%&SET YEAR=%BB% )	)		REM Something went wrong, we weren't able to get a valid date	IF NOT "%YEAR%" == "0" GOTO DATEOK	goto ERRNODATE:DATEOK	REM Clean up any temporary files we may have created...	REM IF exist userset.reg del userset.reg	REM IF exist userset.txt del userset.txt	IF "%NMM%" == "01" SET MONTH=Jan	IF "%NMM%" == "02" SET MONTH=Feb	IF "%NMM%" == "03" SET MONTH=Mar	IF "%NMM%" == "04" SET MONTH=Apr	IF "%NMM%" == "05" SET MONTH=May	IF "%NMM%" == "06" SET MONTH=Jun	IF "%NMM%" == "07" SET MONTH=Jul	IF "%NMM%" == "08" SET MONTH=Aug	IF "%NMM%" == "09" SET MONTH=Sep	IF "%NMM%" == "10" SET MONTH=Oct	IF "%NMM%" == "11" SET MONTH=Nov	IF "%NMM%" == "12" SET MONTH=Dec	IF NOT {%MONTH%} == {} GOTO DATE_OK	REM *** Not US date format! Assume ISO: yyyy-mm-dd	FOR /F "TOKENS=1-4 DELIMS=/- " %%a IN ('date/t') DO SET DAY=%%a&SET yyyy=%%b&SET nmm=%%c&SET dd=%%d	echo a=%%a b=%%b c=%%c d=%%d	IF "%NMM%" == "01" SET MONTH=Jan	IF "%NMM%" == "02" SET MONTH=Feb	IF "%NMM%" == "03" SET MONTH=Mar	IF "%NMM%" == "04" SET MONTH=Apr	IF "%NMM%" == "05" SET MONTH=May	IF "%NMM%" == "06" SET MONTH=Jun	IF "%NMM%" == "07" SET MONTH=Jul	IF "%NMM%" == "08" SET MONTH=Aug	IF "%NMM%" == "09" SET MONTH=Sep	IF "%NMM%" == "10" SET MONTH=Oct	IF "%NMM%" == "11" SET MONTH=Nov	IF "%NMM%" == "12" SET MONTH=Dec:DATE_OK	IF "%SS" == "" SET SS="00"REM *****************************************************************************************************************REM Now create a valid version.c file ...REM *****************************************************************************************************************	ECHO Version %VER% Build %RUN% date %MONTH%/%DAY%/%YEAR% time %HOUR%:%MIN%:%SEC% %UTC%	ECHO char * Version = "%GENERATED_PROGRAM% %VER% %MONTH% %DAY% %HOUR%:%MIN%:%SEC% %UTC% %YEAR% (%RUN%)" ; > version.c	GOTO EOFREM *****************************************************************************************************************REM Here are the error messages I knowREM *****************************************************************************************************************:ERRNOREG   ECHO "Error: Registry could not be read (check if regedit.exe is available and works as expected)"   GOTO EOF:ERRNODATE    ECHO "Error: Dateformat unknown (check if contents of userset.txt are correctly, especially for iDate and sDate)"	GOTO EOF:ERRNOTIME    ECHO "Error: Timeformat unknown (check if contents of userset.txt are correctly, especially for iTime and sTime)"	GOTO EOF:ERRNOVERF    ECHO "Error: Version file not found (searching for ../../../version.m4)"	GOTO EOF:ERRNOCONF    ECHO "Error: Config.h file not found (searching for ../include/config.h)"	GOTO EOFREM *****************************************************************************************************************REM Show'em how to run (me)REM *****************************************************************************************************************:USAGE   ECHO Usage: mkver.bat [ -P <Program Name> -H ]   ECHO   -P          Database Name   ECHO   -H          Help on optionsREM *****************************************************************************************************************REM All good things come to an end someday. Time to leaveREM *****************************************************************************************************************:EOFREM *** Cleaning up IF EXIST point.txt DEL point.txtIF EXIST userset.txt DEL userset.txtIF EXIST userset.reg DEL userset.reg

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -