[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 7# 77七
网上看到说bat的if不能else if,要用嵌套形式,即else (if xxx equ xxx exit)这种,真的吗您的代码中好像有else if
一个六年级小学生,请多指教

TOP

我自己发现一个问题,就是有两个变量在加载的时候被赋值,后面要判断它们的内容,但是我限制了变量作用域,这样它们就没办法在后面判断了,加变量作用域是为了计时器,计时器有好几个,变量冲突了,这个计时器是照搬论坛某贴的代码,我不会改变量名啊
一个六年级小学生,请多指教

TOP

回复 7# 77七 感谢!尤其是findstr判断颜色代码是不是正确,比我用for一种一种判断好多了
一个六年级小学生,请多指教

TOP

本帖最后由 77七 于 2023-7-2 07:37 编辑
  1. @echo off
  2. ::第7行
  3. setlocal enabledelayedexpansion
  4. ::第11-15行
  5. for /f "useback tokens=1-3 delims=;" %%a in ("%cd%\config.ldt") do (
  6. set color=%%c
  7. if "%%a" equ "true" (
  8. set dbgx=a
  9. ) else if "%%a" equ "false" (
  10. set dbgx=b
  11. ) else (
  12. goto :configerr
  13. )
  14. rem ...
  15. )
  16. ::第16行
  17. echo %color%|findstr /rbec:"[0-9a-f][0-9a-f]" |findstr /ivc:"%color:~0,1%%color:~0,1%" 1>nul && (
  18. goto :colok
  19. ) || (
  20. goto :configerr
  21. )
  22. ::第18-41行,不会被执行
  23. ::第52-53行
  24. if "%com%" equ "shutdown" (
  25. set /p shutyn=Shutdown now?[Y/N]:
  26. if /i "!shutyn!" equ "y" (
  27. shutdown /s /t 0 /f
  28. )
  29. )
  30. ::后续未修改
  31. ::耗时部分
  32. set "t=%time%"
  33. rem ...
  34. set "t1=%time%"
  35. call :c
  36. set "t=%time%"
  37. rem ...
  38. set "t1=%time%"
  39. call :c
  40. ::这段放代码 exit 命令之后
  41. :c
  42. if "%t1:~,2%" lss "%t:~,2%" set "add=+24"
  43. set /a "times=(%t1:~,2%-%t:~,2%%add%)*360000+(1%t1:~3,2%%%100-1%t:~3,2%%%100)*6000+(1%t1:~6,2%%%100-1%t:~6,2%%%100)*100+(1%t1:~-2%%%100-1%t:~-2%%%100)"
  44. echo 检索时间 %times% ms
  45. exit /b
复制代码
根据我的经验和习惯改的,有些地方改的可能不正确。
1

评分人数

    • LTSC1809: 感谢,很多巧妙方法技术 + 1
bat小白,请多指教!谢谢!

TOP

回复 5# LTSC1809


   等号、逗号、分号、空格、制表符 大概都可以
http://bbs.bathome.net/viewthread.php?tid=2286
这个代码就用的 逗号
bat小白,请多指教!谢谢!

TOP

回复 4# Batcher 刚刚看了一下那篇教程,确实是空格欸,我用了这么久的等号竟然不报错能用,堪称奇迹
一个六年级小学生,请多指教

TOP

回复 3# LTSC1809


    不知道你看的是哪篇文章,也可能是你理解错了。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

好的,等号是不是容易被当成赋值号啊,刚接触bat学判断输入内容的时候看百度知道说的if就是用等号,营销号真是害人不浅啊,我现在都习惯了等号了,基本只要不是多行命令用括号其他都用的等号[捂脸哭]
一个六年级小学生,请多指教

TOP

回复 1# LTSC1809


if %color% equ %%i=goto colok
这种格式的if命令你写了很多个,先把等号改成空格试试吧。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表