[Windows]BAT腳本自定義函數


1 helloworld

@echo off

call :helloworld helloworld

goto :EOF


:helloworld
setlocal
echo %1

endlocal&goto :EOF

2 比較日期的自定義函數

@echo off

@rem case1
@rem call :function_compare_date "2021-01-09" "2021-01-08" & goto :EOF

@rem case2
call :function_compare_date "1970-01-01" "2021-01-07"
@ECHO return:%FUNC_RETURN%
goto :EOF
@rem ################################################################################
@rem #↓                                  函數區                     		   ↓#
@rem ################################################################################

@rem ##############################
@rem [自定義函數] 比較兩(字符串)日期
@rem ##############################

@rem [FUNCTION] 自定義比較日期字符串的函數
@rem 日期參數格式: "2021-01-09"
@rem 如果第1個日期 >= 第2個日期:返回 TRUE;否則,返回:FALSE
:function_compare_date
@rem setlocal
@rem 獲取第n個函數
@rem ECHO %1 & echo %2
SET A_DATE_STR=%1
SET B_DATE_STR=%2

SET /A A_YEAR=%A_DATE_STR:~0,5%
@REM ECHO DATE:%A_YEAR%
SET /A A_MONTH=%A_DATE_STR:~6,2%
@REM ECHO DATE:%A_MONTH%
SET /A A_DAY=%A_DATE_STR:~10,2%
@REM ECHO DATE:%A_DAY%
@rem ECHO DATE-A:%A_YEAR%-%A_MONTH%-%A_DAY%

SET /A B_YEAR=%B_DATE_STR:~0,5%
@REM ECHO DATE:%B_YEAR%
SET /A B_MONTH=%B_DATE_STR:~6,2%
@REM ECHO DATE:%B_MONTH%
SET /A B_DAY=%B_DATE_STR:~10,2%
@REM ECHO DATE:%B_DAY%
@rem ECHO DATE-B:%B_YEAR%-%B_MONTH%-%B_DAY%

@rem 設置默認返回值
SET FUNC_RETURN=FALSE
@rem 為避免此錯誤"> was unexpected at this time.",比較大小時,使用如下比較符
@rem GTR 大於 / EQU 等於 / NEQ 不等於 / LSS 小於 / LEQ 小於或等於 / GEQ 大於或等於
IF %A_YEAR% GTR %B_YEAR% (
	@rem ECHO TRUE
	SET FUNC_RETURN=TRUE
) ELSE IF "%A_YEAR%" EQU "%B_YEAR%" (
	IF "%A_MONTH%" GTR "%B_MONTH%" (
		@rem ECHO TRUE
		SET FUNC_RETURN=TRUE
	) ELSE IF "%A_MONTH%" EQU "%B_MONTH%" (
		IF "%A_DAY%" GTR "%B_DAY%" (
			@rem ECHO TRUE
			SET FUNC_RETURN=TRUE
		) ELSE IF "%A_DAY%" EQU "%B_DAY%" (
			@rem ECHO TRUE
			SET FUNC_RETURN=TRUE
		) ELSE (
			@rem ECHO FALSE
			SET FUNC_RETURN=FALSE
		)
	) ELSE (
		@rem ECHO FALSE
		SET FUNC_RETURN=FALSE
	)
) ELSE (
	@rem ECHO FALSE
	SET FUNC_RETURN=FALSE
)
@rem ECHO [FUNCTION-TIPS]FUNC_RETURN:%FUNC_RETURN%
@rem endlocal
goto :EOF


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM