请问下列批处理如何实现

来源:百度知道 编辑:UC知道 时间:2024/06/04 09:44:59
屏幕输入一个变量
系统自己用:年份*月份*日期得到一个6位数的数值变量!
把上述二个变量比较,如果一致则进行下一步动作,
如果不一致,则停留在屏幕输入变量画面!一直要求输入!
不好意思,我没有说明清楚!要比较的是系统日期的乘积,如:2008*10*28=562240!

日期的年月日可能是0x,直接乘的话会被认为是八进制数字,从而会计算出错误的数字(比如2008.09.09),因此应当把多余的0去掉.
还有就是要用!var!而不用%var%,因为涉及到输入,比如我试过如果把下面的!n1!改成%n1%,则输入
"=="" echo
也会执行下一步动作.

@echo off
setlocal enabledelayedexpansion
:loop
set /p "n1=请输入一个变量:"
set "y=!date:~0,4!"
set "m=!date:~5,2!"
set "d=!date:~8,2!"
for %%i in (m d) do if "!%%i:~0,1!"=="0" set "%%i=!%%i:~1,1!"
set /a "n2=!y!*!m!*!d!"
if not "!n1!"=="!n2!" goto loop
echo 下一步动作
pause
goto :eof

@echo off

:main
set /p pnum=请输入一个变量:
set dnum=%date:~0,4%%date:~5,2%%date:~8,2%
if "%pnum%"=="%dnum%" (下一步动作) else (goto main)
pause

对楼上的修改了下,这个答案更符合楼主一些吧
@echo off
:main
set /p pnum=请输入一个变量:
set dnum=%date:~2,-4%
set nnum=%dnum:-=%
if "%pnum%"=="%nnum