|
|
发表于 2024-8-20 00:32:01
|
显示全部楼层
本帖最后由 aloha20200628 于 2024-8-24 22:32 编辑
参考6楼代码用 findstr 小正则卡位定界 mm/dd 格式输入,句式更为简洁,如此4楼代码可减肥‘到底’ ,给出如下两个等效版本...
第一版本》先行正则卡位定界,再行powershell合法性检查
- @echo off &setlocal &set/p "md=输入日期(月值/日值):"
- echo,%md%|findstr /rc:"[01][0-9]/[0-3][0-9]">nul||echo,非法&endlocal&pause&exit/b
- powershell "('2024/%md%' -as [DateTime]) -ne $null"|find /i "true">nul
- if errorlevel 1 (echo,非法) else (echo,合法)
- endlocal&pause&exit/b
复制代码 第二版本》先行powershell合法性检查,再行卡位定界
- @echo off &setlocal &set "w=非法" &set/p "md=输入日期(月值/日值):"
- powershell "('2024/%md%' -as [DateTime]) -ne $null"|find /i "true">nul
- if errorlevel 1 (set k=1) else if "%md:~2,1%"=="/" if "%md:~-3,1%"=="/" set "w=合法"
- echo,%w%&endlocal&pause&exit/b
复制代码 |
|