[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 5# ppll2030


    是的是的,这个失误不应该

TOP

回复 3# hnfeng


    你原来的代码,38行,输错了一个$

TOP

回复 1# hnfeng


    前面开了延时,跳转出就不要取消,不然你设置了时分秒都不会变了。
另外set /a 作为计算运算时,特殊符号要记得用转义符。
添加双零,在只有分秒的时候美观一些。
  1. :Sec2Time
  2. set hh=00
  3. set mm=00
  4. set ss=00
  5. if %1 LSS 60 (
  6. set %2=!hh!:!mm!:%1
  7.   ) else (
  8.    if %1 LSS 3600 (
  9. set /a mm=%1 / 60
  10. set /a ss=%1 - ^(!mm! * 60^)
  11. set %2=!hh!:!mm!:!ss!
  12. ) else (
  13.       set /a hh=%1 / 3600
  14.       set /a mm=^(%1 - ^(!hh! * 3600^)^) / 60
  15.       set /a ss=%1 - !hh! * 3600 - !mm! * 60
  16.       set %2=!hh!:!mm!:!ss!
  17.   )
  18. )
  19. goto :EOF
复制代码

TOP

回复 2# 77七


    厉害,一下子就看到问题了,多谢多谢

可能还有其他问题, 第一个运行结果正确,其他的输出结果不正确, 不知哪里的问题:
  1. 8 0:0:8
  2. 请按任意键继续. . .
  3. 68 0:0:0
  4. 请按任意键继续. . .
  5. 168 0:0:0
  6. 请按任意键继续. . .
  7. 3668 0:0:0
  8. 请按任意键继续. . .
  9. 13668 0:0:0
  10. 请按任意键继续. . .
复制代码

TOP

  1. if %1 LSS 60 (
  2. endlocal & set %2=!hh!:!mm!:%1
  3. ) else (
  4. if %1 LSS 3600 (
  5. set /a mm=%1 / 60
  6. set /a ss=$1 - ^(!mm! * 60^)
  7. endlocal & set %2=!hh!:!mm!:!ss!
  8. ) else (
  9. set /a hh=%1 / 3600
  10. set /a mm=^(%1 - ^(!hh! * 3600^)^) / 60
  11. set /a ss=%1 - !hh! * 3600 - !mm! * 60
  12. endlocal & set %2=!hh!:!mm!:!ss!
  13. )
  14. )
复制代码
bat小白,请多指教!谢谢!

TOP

返回列表