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

[代码合集] [分享]个人常用批处理代码

以下是本人收藏的一些常用代码,欢迎大家交流
显示批处理自身
  1. echo 显示批处理自身
  2. echo %cd%   ##路径
  3. ::同%~p0
  4. echo %0   ##完全合格路径名,带双引号
  5. ::同%~f0
  6. echo %~n0   ##文件名
  7. echo %~d0   ##驱动器
  8. echo %~p0   ##路径
  9. echo %~f0   ##完全合格路径名
  10. echo %~x0   ##扩展名   
  11. echo %~s0   ##路径只含短名
  12. echo %~a0   ##文件属性
  13. echo %~t0   ##文件日期
  14. echo %~z0   ##文件大小
  15. echo %~t0   ##文件日期
  16. echo %~$PATH:0   
  17. ::%cd%    表示自身的路径
  18. ::%0      表示自身的完整路径(即批处理自身,包含驱动器、路径、文件名和后缀名)
  19. ::start "" %cd%
复制代码

计次
  1. @echo off
  2. set var=0
  3. :A
  4. set /a var+=1
  5. if %var% lss 999 goto A
  6. rem 为什么标签不能为1?
  7. echo 共循环了%var%次。
  8. pause
  9. set var=0
  10. for /l %%i in (1,1,100) do (
  11. set /a var+=1
  12. )
  13. echo var的结果是%var%。
  14. pause
复制代码

提取指定行
  1. @echo off
  2. findstr /n .* new.txt>>newp.txt
  3. set /p m=请输入要定位的行:
  4. findstr  /b   "%m%"   newp.txt
  5. pause
复制代码

倒计时
  1. @echo off
  2. echo 单数倒计时::逐个输出
  3. for /l  %%a in (10,-1,1) do set/p a=%%a<nul&ping /n 2 127.1>nul&cls&ping /n 1 127.1>nul
  4. echo 竖向倒计时
  5. for /l  %%a in (10,-1,1) do echo %%a<nul&ping /n 2 127.1>nul
  6. echo 横向倒计时
  7. for /l  %%a in (10,-1,1) do set/p a= ^%%a<nul&ping /n 4 127.1>nul
  8. pause
复制代码

压缩与解压缩
  1. @echo off
  2. echo 解压缩
  3. call "%ProgramFiles%\WinRAR\UnRAR.exe"  X bbb.rar *.txt Audio\
  4. ::    e       解压文件到当前目录。
  5. ::    x       带绝对路径解压
  6. pause
  7. echo 压缩
  8. call "%ProgramFiles%\WinRAR\RAR.exe"  A e:\bbb.rar 3.txt
  9. ::UnRAR.exe是解压缩的意思,RAR是压缩的意思。
  10. ::      a       添加文件到压缩文件中。
  11. ::    -df     压缩后删除文件
  12. pause
复制代码

判断变量是否赋值
  1. @echo off
  2. if defined str (echo 变量str已被赋值,其值为%str%) else (echo 变量str的值为空)
  3. Echo ………………………………………………
  4. set str=AAA
  5. if defined str (echo 变量str已被赋值,其值为%str%) else (echo 变量str的值为空)
  6. echo.
  7. Pause
  8. set /p timec=可以不设置:
  9. set /p Performer=拖入一个程序:
  10. if defined timec (echo 变量timec已被赋值,其值为%timec%) else (echo 变量timec的值为空)
  11. if defined Performer (start "" "%performer%")
  12. ::假设变量已被赋值就执行后面的命令,否则执行另外一个命令
  13. pause
复制代码

搜索文件夹
  1. @echo off
  2. dir /ad /s /b
  3. ::a属性,d按栏分类列出,s显示所有子目录,b使用空格式
  4. pause
  5. @echo off
  6. ::查找盘符下的文件夹(包括隐藏文件夹)
  7. setlocal EnableDelayedexpansion
  8. for /f "tokens=3,4 delims= " %%a in ('"dir /a /o:g  f:\"') do (
  9. set var121=%%a
  10. set var122=^<DIR^>
  11. if !var121!==!var122! echo %%b
  12. )
复制代码
1

评分人数

求和:时间前和时间后的和
  1. @echo off&setlocal EnableDelayedExpansion
  2. ::用于文档累计,算文档内数字的总和,数字需竖列,没试过横列的以及其它方式的
  3. set str=
  4. for /f %%a in (XT量表1结果.txt) do (
  5. for /f %%i in ("!str!") do set mum1=%%i>nul
  6. set str=%%a
  7. set /a var=!mum1!+%%a
  8. set str=!var!
  9. )
  10. echo !var!
复制代码

监控进程,进程不在在打开
  1. :1
  2. "C:\Program Files\Internet Explorer\iexplore.exe"
  3. goto 1
复制代码

TOP

过滤(成功)两个文本中重复的部分
  1. set wb=文本1.txt
  2. set wb1=文本2.txt
  3. for /f "delims=" %%i in (%wb%) do (
  4. if not defined %%i set %%i=A & echo %%i>>%wb1%
  5. )
复制代码

提取两个文本中不重复的部分(可用).bat
  1. @echo off
  2. cls
  3. echo.
  4. echo.
  5. echo                            比较文本提取不重复
  6. echo,
  7. echo        如有:1.txt 2.txt,提取2.txt在1.txt里没有的行
  8. echo        文本2.txt应当比1.txt多一些内容。
  9. echo        重复的不要
  10. echo.
  11. set /p wb1=请输入要处理的[路径]文本2:
  12. set /p wb2=请输入要处理的[路径]文本1:
  13. set /p wb3=请输入处理后生成的[路径]文本:
  14. for /f "delims=" %%c in (%wb1%) do (
  15. findstr "%%c" %wb2%>nul ||echo %%c>>%wb3%)
  16. echo 处理完成
  17. ping /n 2 127.0.1 >nul
  18. goto :eof
复制代码

提取一个文本中重复的部分(成功).bat
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo 提取文本重复行——只要重复的部分,不重复的不要
  4. echo.
  5. set /p wb=请输入要处理的[路径]文本:
  6. set /p wb1=请输入处理后生成的[路径]文本:
  7. for /f "delims=" %%a in ('sort %wb%') do (
  8. if %%a equ !b! echo %%a>>%wb1%
  9. set b=%%a)
  10. echo 处理完成
  11. ping /n 2 127.0.1 >nul
  12. goto :eof
  13. ::sort 对文档内容进行重新排序
复制代码

TOP

比较返回码
  1. @echo off
  2. FIND  "甲兵"  c:\AAA.txt
  3. echo,  
  4. echo,  
  5. echo,
  6. IF ERRORLEVEL 2 ECHO ◇错误
  7. IF ERRORLEVEL 1 ECHO ◎失败
  8. IF ERRORLEVEL 0 ECHO ★成功
  9. echo ~~~~~~~~~(1)~~~~~~~~~
  10. if %ERRORLEVEL% == 2 echo ◇我错误了
  11. if %ERRORLEVEL% == 1 echo ◎我失败了
  12. if %ERRORLEVEL% ==0   echo ★我成功了
  13. echo ~~~~~~~~~(2)~~~~~~~~~~
  14. IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 ECHO ★OK
  15. IF ERRORLEVEL 1 IF NOT ERRORLEVEL 2 ECHO ◎Fail
  16. IF ERRORLEVEL 2 IF NOT ERRORLEVEL 3 ECHO ◇Wrong
  17. echo ~~~~~~~~~(3)~~~~~~~~~~
  18. pause>nul
复制代码

Set截取理解
  1. @echo off
  2. :jiequ
  3. echo.
  4. echo.
  5. echo               SET命令截取字符串四种类型详解 CMD@XP BY CJIABING
  6. echo.
  7. echo    规律总结:
  8. echo     M:从前面数起,删除前面M位数截取剩余位数——只要后面的,但从前面数起
  9. echo    -M:从后面数起,保留后面M位数——只要后面的,但从后面数起
  10. echo     N:从前面数起,保留前面N位数——只要前面的,但从前面数起
  11. echo    -N:从后面数起,删除后面N位数——只要前面的,但从后面数起
  12. echo      + 表示从前面数起,- 表示从后面数起(从后面算起优先)。
  13. echo      M 表示只要后面的,N 表示只要前面的。
  14. echo.
  15. echo    使用实例:
  16. echo    set str=我爱批处理
  17. set str=我爱批处理
  18. echo    ::设置变量%%str%%为“我爱批处理”五个字符串
  19. echo    echo %%str:~0,1%%     ::1显示:%str:~0,1%       ~0,1    表示取第一个字符
  20. echo    echo %%str:~1,1%%     ::2显示:%str:~1,1%       ~1,1    表示取第二个字符
  21. echo    echo %%str:~2,-2%%    ::3显示:%str:~2,-2%       ~2,-2   表示保留第三个字符
  22. echo    echo %%str:~-3,3%%    ::4显示:%str:~-3,3%   ~-3,3   表示取最后三个字符
  23. echo    echo %%str:~-3,-1%%   ::5显示:%str:~-3,-1%     ~-3,-1  表示保留倒数第二、第三两个字符
  24. echo.
  25. echo    注意:
  26. echo    1、正取时字符向右偏移一位,故0表示位置1,1表示位置2,依此类推,如上;
  27. echo    2、在FOR命令中,需先把输出变量设置为一个新变量,如:set str=%%%%a。
  28. echo ______________________________________________________________________________
  29. pause>nul
  30. ::cls
  31. echo.
  32. echo    第一种:%%var:~M,N%%
  33. echo    例  子:%%var:~3,5%%
  34. set var=1234567890
  35. set var=%var:~3,5%
  36. echo    结  果:%var%
  37. echo.   
  38. echo    3:删除前面3位剩余 -123=4567890
  39. echo    5:保留前面5位。 +45678
  40. echo    结果:45678
  41. echo    M:从前面数起,删除前面M位数截取剩余位数——只要后面的,但从前面数起
  42. echo ______________________________________________________________________________
  43. pause>nul
  44. echo.
  45. echo    第二种:%%var:~M,-N%%
  46. echo    例  子:%%var:~3,-5%%
  47. set var=1234567890
  48. set var=%var:~3,-5%
  49. echo    结  果:%var%
  50. echo.
  51. echo    3:删除前面3位剩余 -123=4567890
  52. echo    -5:删除后面5位剩余 -67890=45
  53. echo    结果:45
  54. echo    -M:从后面数起,保留后面M位数——只要后面的,但从后面数起
  55. echo ______________________________________________________________________________
  56. pause>nul
  57. echo.
  58. echo    第三种:%%var:~-M,N%%
  59. echo    例  子:%%var:~-6,1%%
  60. set var=1234567890
  61. set var=%var:~-6,1%
  62. echo    结  果:%var%
  63. echo.
  64. echo    -6:保留后面6位 +567890
  65. echo    1:保留前面1位。 +5
  66. echo    结果:5
  67. echo    N:从前面数起,保留前面N位数——只要前面的,但从前面数起
  68. echo ______________________________________________________________________________
  69. pause>nul
  70. echo.
  71. echo    第四种:%%var:~-M,-N%%
  72. echo    例  子:%%var:~-6,-1%%
  73. set var=1234567890
  74. set var=%var:~-6,-1%
  75. echo    结  果:%var%
  76. echo.
  77. echo    完全取后面的数
  78. echo    -6:保留后面6位数即 +567890
  79. echo    -1:删除后面1位数剩余 -0=123456789
  80. echo    结果:56789
  81. echo    -N:从后面数起,删除后面N位数——只要前面的,但从后面数起
  82. echo ______________________________________________________________________________
  83. pause>nul
  84. cls
  85. goto jiequ
复制代码

TOP

全盘搜索音视频文件并分类导出,毛片无处可逃  :p
  1. @echo off
  2. for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype='3'" get caption') do (
  3. dir /b /a-d /b /s "%%i\*.mp3" "%%i\*.wma" "%%i\*.wav" >nul 2>nul >>yin3.txt
  4. )
  5. for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype='3'" get caption') do (
  6. dir /b /a-d /b /s  "%%i\*.mp4"  "%%i\*.flv" "%%i\*.3gp">nul 2>nul >>shirm.txt
  7. )
  8. for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype='3'" get caption') do (
  9. dir /b /a-d /b /s "%%i\*rm*" "%%i\*rmvb*" "%%i\*mpg*"  "%%i\*avi*"  "%%i\*wmv*" >nul 2>nul >>shirm.txt
  10. )
  11. for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype='3'" get caption') do (
  12. dir /b /a-d /b /s "%%i\*.jpg" "%%i\*.bmp" >nul 2>nul >>tujb.txt
  13. )
复制代码

TOP

好啊,谢谢分享。我收下了

TOP

不错呀,有意思的东西还是要自己写呀。

TOP

慢慢学习中!
收了

TOP

慢慢学习中!
收了

TOP

这么多 值得参考学习!

TOP

返回列表