::用法:name.cmd 20170530 (其中name.cmd为以下命令保存的脚本名)
::获取管理员权限
%Windir%\System32\FLTMC.exe >nul 2>&1 || (
IF EXIST "%TEMP%\AdminRun.vbs" DEL /f /q "%TEMP%\AdminRun.vbs" 2>nul
ECHO CreateObject^("Shell.Application"^).ShellExecute "%~f0", "%1", "", "runas", 1 >> "%TEMP%\AdminRun.vbs"
ECHO CreateObject^("Scripting.filesystemobject"^).DeleteFile ^(WScript.ScriptFullName^) >> "%TEMP%\AdminRun.vbs"
%Windir%\System32\CSCRIPT.exe //Nologo "%TEMP%\AdminRun.vbs"
Exit /b
)
::获取输入日期
set DTE=%1
echo %DTE%
set YY=%DTE:~0,4%
set MM=%DTE:~4,2%
set DD=%DTE:~6,2%
::获取系统日期格式
for /f "delims=" %%a in ('reg query "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate') do (
set "RegDate=%%a"
)
set DT=%RegDate:~28,10%
for /f "delims=d,M,y" %%i in ("%DT%") do (
set "str=%%i"
)
for /f "tokens=1,2 delims=%str%" %%i in ("%DT%") do (
set "RegDate1=%%i"
set "RegDate2=%%j"
)
for /f "tokens=1,3 delims=%str%" %%m in ("%DT%") do (
set "RegDate3=%%n"
)
::赋值
:Step1
if %RegDate1:~0,1%==y set RegDate1=%YY%
if %RegDate1:~0,1%==M set RegDate1=%MM%
if %RegDate1:~0,1%==d set RegDate1=%DD%
:Step2
if %RegDate2:~0,1%==y set RegDate2=%YY%
if %RegDate2:~0,1%==M set RegDate2=%MM%
if %RegDate2:~0,1%==d set RegDate2=%DD%
:Step3
if %RegDate3:~0,1%==y set RegDate3=%YY%
if %RegDate3:~0,1%==M set RegDate3=%MM%
if %RegDate3:~0,1%==d set RegDate3=%DD%
::修改日期
:Step4
date %RegDate1%%str%%RegDate2%%str%%RegDate3%