Board logo

标题: [其他] [已解决]调用批处理如果开启变量延迟执行完无法自动关闭窗口 [打印本页]

作者: yakeyun    时间: 2022-2-11 16:16     标题: [已解决]调用批处理如果开启变量延迟执行完无法自动关闭窗口

本帖最后由 yakeyun 于 2022-2-11 16:37 编辑

调用下面代码,调用命令:start d:\时间.bat。测试发现只要代码中有延迟变量命令,执行完窗口不会自动关闭。不想用CALL 这样会耽误多个代码的同时执行时长。
脚本的作用是获取当前系统日期和时间并转换为UNIX编码,然后直接修改注册表系统安装日期项。

  1. @echo off
  2. setlocal
  3. call :GetUnixTime UNIX_TIME
  4. echo %UNIX_TIME% 格式标准:1970-01-01 00:00:00
  5. @reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "InstallDate" /t REG_DWORD  /d %UNIX_TIME% /f
  6. exit /b
  7. :GetUnixTime
  8. setlocal enableextensions
  9. for /f %%x in ('wmic path win32_utctime get /format:list ^| findstr "="') do (
  10.     set %%x)
  11. set /a z=(14-100%Month%%%100)/12, y=10000%Year%%%10000-z
  12. set /a ut=y*365+y/4-y/100+y/400+(153*(100%Month%%%100+12*z-3)+2)/5+Day-719469
  13. set /a ut=ut*86400+100%Hour%%%100*3600+100%Minute%%%100*60+100%Second%%%100
  14. endlocal & set "%1=%ut%" & goto :EOF
复制代码
代码执行(systeminfo命令查询)后的效果:

作者: Batcher    时间: 2022-2-11 16:27

回复 1# yakeyun


    exit /b 改成 exit 可以吗?
作者: yakeyun    时间: 2022-2-11 16:35

回复 2# Batcher

EXIT成功了
作者: yakeyun    时间: 2022-2-11 17:25

回复 2# Batcher


老大知道导致这个问题的原因吗,即使命令结尾关闭延迟变量也不会自动关闭窗口。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2