我编写了这段代码来更改日期。但是当我输入了错误的日期时,errorlevel
命令似乎被忽略了。
@echo off
@setlocal enableextensions
@cd /d "%~dp0"
mode 48,12
:start
cls
echo.
echo 1 - Mudar data
echo 2 - Retornar a data atual
echo.
echo.
echo.
echo.
choice /n /c:12 /m "Digite uma op‡Æo:"%1
if errorlevel ==2 goto 2
if errorlevel ==1 goto 1
:1
cls
set /p "dd=Digite o dia: "
cls
set /p "mm=Digite o mes: %dd% - "
cls
set /p "aa=Digite o ano: %dd% - %mm% - "
cls
date %dd%-%mm%-%aa%
if not errorlevel 1 (
cls
echo Data modificada.
pause
goto start
)
if errorlevel 1 (
cls
echo Erro ao mudar a data.
pause
goto start
)
:2
cls
w32tm /resync >nul 2>nul
cls
goto start
我假设如果日期输入错误,它将显示一个echo Erro ao mudar a data.
,但它只会打开date
命令屏幕,要求更改日期,因为输入错误。
编辑1个
只需更新我的代码,包括停止Windows Time Service
的命令,因为即使我更改了日期,在一段时间后,实际日期再次被替换。
@echo off
setlocal enableextensions
cd /d "%~dp0"
mode 42,12
:begin
cls
echo ------------------------------------------
echo MUDAR A DATA DO WINDOWS
echo ------------------------------------------
echo( &echo(
echo 1 - Escolher a data & echo( &echo 2 - Retornar para a data atual
echo( & echo( &echo(
choice /n /c:12 /m "Digite uma op‡Æo:"%1
goto :lab%errorlevel%
:lab1
cls & set /p "dd=Digite o dia: "
cls & set /p "mm=Digite o mes: %dd% / "
cls & set /p "aa=Digite o ano: %dd% / %mm% / "
date %dd%/%mm%/%aa% <nul && (
cls
net stop w32time >nul 2>nul
sc config w32time start= disabled >nul 2>nul
echo Data modificada.
timeout /nobreak /t 2 >nul 2>nul
goto begin
) || (
cls & echo Erro ao mudar a data.
echo( &echo( &echo(
pause
goto begin
)
:lab2
net start w32time >nul 2>nul
sc config w32time start= demand >nul
cls & w32tm /resync >nul 2>&1
echo Data atual retornada.
timeout /nobreak /t 2 >nul 2>nul
cls & goto begin
https://stackoverflow.com/questions/56258350
复制相似问题