Board logo

标题: [转贴] DOS(CMD)下批处理换行问题 [打印本页]

作者: youxi01    时间: 2008-1-18 19:00     标题: DOS(CMD)下批处理换行问题

本人经常写一些DOS批处理文件,由于批处理中命令的参考较多且长,写在一行太不容易分辨,所以总想找个办法把一条命令分行来写,今天终于试成功两种方法。一、在CMD下,可以用^作为换行符,类似于Linux下的\。举例如下:
start pemu.exe ^
-net nic,vlan=1,macaddr=00:aa:00:00:01:01 -net tap,vlan=1,ifname=tap1 ^
-net nic,vlan=2,macaddr=00:aa:00:00:01:02 -net tap,vlan=2,ifname=tap2 ^
-net nic,vlan=3,macaddr=00:aa:00:00:01:03 -net tap,vlan=3,ifname=tap3 ^
-serial [url=telnet::1007,server]telnet::1007,server[/url] ^
-m 128 FLASH802
二、用变量。举例如下:
@echo off
setlocal
set command_name=start pemu.exe
set nic1=-net nic,vlan=1,macaddr=00:aa:00:00:01:01 -net tap,vlan=1,ifname=tap1
set nic2=-net nic,vlan=2,macaddr=00:aa:00:00:01:02 -net tap,vlan=2,ifname=tap2
set nic3=-net nic,vlan=3,macaddr=00:aa:00:00:01:03 -net tap,vlan=3,ifname=tap3
set options=-serial [url=telnet::1007,server]telnet::1007,server[/url]
set parameter= -m 128 FLASH802
%command_name% %nic1% %nic2% %nic3% %options% %parameter%
作者: hkmhd    时间: 2009-3-2 10:36

.......没看懂,这个范例不太好
作者: Batcher    时间: 2009-3-2 11:31     标题: 回复 2楼 的帖子

多看教程,多做练习,慢慢就能体会到楼主的意图。
作者: leaparde    时间: 2009-3-5 14:33

顶楼主,学习了,可以让代码更容易读。
楼主原来还是个模拟器的高手啊,佩服。
作者: dosz    时间: 2009-4-26 09:34

【动画特效】批处理走字特效[单行显示].bat
  1. @echo off&setlocal enabledelayedexpansion
  2. title code by 泛滥棏慌°  2007-12-1  bbs.bathome.net
  3. mode con: cols=87 lines=15
  4. for /l %%l in (1 1 42) do set "ko= !ko!"
  5. color 1a&echo\&set,=!ko!^
  6. 我们,是一群执著的批处理爱好者^
  7. 在色彩斑斓的WINDOWS下,开启CMD这扇深邃的窗口^
  8. 曾经挑灯夜战,曾经彻夜不眠^
  9. 我们之所以如此似痴若狂,是因为我们深知:^
  10. 尺有所短、寸有所长,CMD不同凡响^
  11. 我们精益求精,力求完美^
  12. 所有的努力,只为了用最简洁的语言,编写最具实用性的代码^
  13. 批处理之家BBS.BATHOME.CN^
  14. 高手汇聚、资料齐全、是新手入门的福地、老手晋级的乐园^
  15. 不求最大、但求最好、展现批处理的无穷魅力、一切精彩,尽在~~批处理之家~~                                  演示完毕。再见!!
  16. :: ----------------------------------------------▓批处理▓----------------------------------------------------------
  17. for %%i in (8 4 -1 4 -1 4 -1 10 -1 8 -1 16 -7 , 8 4 -1 4 -1 4 -1 10 -1 8 -1 8 -5 4 -1 4 -1 , 8 -4 2 -1 4 -1 10 -4 2 -1 12 -1 2 -7 , 8 4 -1 4 -1 4 -1 2 -1 6 -1 4 -1 2 -2 10 -1 2 -1 4 -1 4 -1 , 8 4 -1 4 -2 2 -2 6 -1 6 -1 2 -1 2 -1 4 -5 4 -1 4 -1 , 8 4 -2 2 -1 4 -1 8 -1 4 -1 4 -1 4 -1 6 -1 2 -7 , 8 -3 4 -1 4 -1 6 -1 2 -1 2 -1 4 -1 12 -1 8 -1 , 8 4 -1 4 -1 4 -1 12 -1 6 -1 12 -1 4 -5 , 8 4 -1 4 -1 2 -2 2 -1 8 -1 6 -1 12 -2 6 -1 , 8 4 -1 4 -2 2 -1 2 -1 6 -1 2 -2 2 -1 8 -2 10 -1 , 8 -3 4 -1 4 -3 2 -2 8 -5 8 -8) do (
  18. (if "%%i"=="," (echo.&ping -n 1 127.1>nul)) && (set a=%%i)&(set b=!a:-=!)
  19.   if %%i lss 0 (for /l %%j in (1,1,!b!) do (set/p=▓<nul)) else (for /l %%k in (1,1,%%i) do (set/p= <nul)
  20. ))
  21. :: ----------------------------------------------▓批处理▓----------------------------------------------------------
  22. call :delay 700&echo\&echo\
  23. for /l %%l in (1 1 255) do (
  24.    set /p=!,:~0,43!<nul
  25.    call :delay 40 修改这个数字可以调整走字的速度.
  26.    for /l %%j in (1,1,87) do (set/p=<nul)
  27.    set ,=!,:~1!
  28. )
  29. call :delay 700&exit
  30. :delay
  31. for /l %%i in (1,1,%1) do (error>nul 2>nul)
  32. goto :eof
复制代码


【动画特效】随风版批处理之家论坛bat广告[分行显示] .bat
  1. @echo off&setlocal EnableDelayedExpansion
  2. goto start_1
  3. 我们,是一群执著的批处理爱好者
  4. 在色彩斑斓的Windows下,开启CMD这扇深邃的窗口
  5. 曾经挑灯夜战,曾经彻夜不眠
  6. 我们之所以如此似痴若狂,是因为我们深知:
  7. 尺有所短、寸有所长,CMD不同凡响
  8. 我们精益求精,力求完美
  9. 所有的努力,只为了用最简洁的语言,编写最具实用性的代码
  10. 批处理之家  bbs.bathome.net
  11. 高手汇聚、资料齐全、是新手入门的福地、老手晋级的乐园
  12. 不求最大、但求最好、展现批处理的无穷魅力、一切精彩,尽在 ~~ 批处理之家 ~~
  13. :start_1
  14. (set num1=90&set num2=15&set "ko= ")
  15. (mode con: cols=!num1! lines=!num2!)
  16. (set k4=!ko!!ko!!ko!!ko!)
  17. (title code by 随风  2007-12-1  @bbs.bathome.net)
  18. for /l %%a in (1 1 5) do (set yanse=!yanse!abcdef123456789)
  19. (set fang=■&echo.&echo.&set ",=0123456789"&set "hanghao=12")
  20. for /l,%%a,in,(1,1,20),do,(set k=!k!!ko!)
  21. for /f,"tokens=1* delims=:" %%a,in,('findstr /n .* "%~0"'),do,(
  22. if,%%a,leq,%hanghao%,(set _%%a=%%b))
  23. (set "_1=%k%批处理之家!ko!!ko!bbs.bathome.net!ko!!ko!欢迎您")
  24. (set "_2=!k4!!k4!!ko!!ko!网址:bbs.bathome.net")
  25. (set "_2=!_2!!k4!群号:43011867!k4!站长:youxi01")
  26. (set sans=!k4!!k4!!ko!────!k4!批处理之家!ko!!ko!bbs.bathome.net!k4!!ko!)
  27. ::======================================================================
  28. call :cuko
  29. for /l %%a in (1 1 28) do (set "kkk= !kkk!")
  30. (set kait=%kkk%批处理之家!ko!!ko!bbs.bathome.net!ko!!ko!欢迎您)
  31. echo\&echo\&echo\
  32. for /l %%k in (0 1 100) do (
  33. if not "!kait:~%%k,1"=="" (set/p=!kait:~%%k,1!<nul)
  34. for /l %%i in (1 1 100) do ver>nul)
  35. (echo.&echo.&echo.&echo.&set/p=!k4!!k4!!ko!!ko!!ko!<nul)
  36. for /l %%a in (1 1 33) do (
  37. (set /a jind=%%a*3)
  38. (set "jind=!k4!!jind!")
  39. (set "jind=!jind:~-3!")
  40. (set /p=%fang%!jind!%%<nul)
  41. (set /p=<nul)
  42. for /l %%i in (1 1 300) do ver>nul)
  43. (set/p= 100%%<nul)&(ping/n 3 127.1>nul)
  44. call :cuko
  45. call :texiao
  46. call :cuko 17
  47. echo CMD-BAT
  48. for /l,%%a,in,(1,1,%hanghao%),do,(
  49. (set "]=0")
  50. for /l,%%i,in,(0,1,100),do,(
  51. (set /=!_%%a!)
  52. if,not,"!_%%a:~%%i,1!"=="",(set /a]+=1))
  53. call :lis
  54. if %%a equ 2 echo.)
  55. (echo\&echo\&echo\&color 1a)
  56. (set/p=!sans!<nul)
  57. goto sansuo
  58. :lis
  59. (echo\&echo\&set/p= !k4!<nul)
  60. (set /a "\=!]:~0,1!")
  61. set/a?=1/(1/!]:~-1!)2>nul||(set "/=!/! ")
  62. set/a?=1/(10/])2>nul&&(set \=1&set:=1)||(set:=0)
  63. for /l,%%a,in,(!:! 1 !\!),do,(
  64. (set "{=")
  65. if,%%a,equ,!\!,(set }=!]:~-1!),else,(set }=9)
  66. for /l,%%i,in,(0 1 !}!),do,(set {=!{!%%i)
  67. call :xs)
  68. goto :eof
  69. :xs
  70. for /l,%%k,in,(0 1 !}!),do,(
  71. (call,call,call,set /p=%%%%%%%%/:~%%%%{:~%%,:~%%k,1%%,1%%%%,1%%%%%%%%<nul)
  72. for /l,%%i,in,(1,1,200),do,ver>nul)
  73. (set /a "sq=}+1")
  74. (call,set "/=%%/:~!sq!%%")
  75. goto :eof
  76. :cuko
  77. (set quese=0&set ookk=)&(set bai1=-&set bai2=-)
  78. for /l %%i in (1,1,72) do (
  79. for /l %%h in (2 2 72) do (if "%%i"=="%%h" set ookk=a)
  80. (call set pys=%%yanse:~!quese!,1%%)
  81. (color !pys!1)
  82. (if defined ookk set /a quese+=1&set ookk=)
  83. (if %%i gtr 36 set bai1=+)
  84. (if !num2! equ 3 set bai2=+)
  85. if not "%1"=="" (
  86. if not defined llis if !num2! equ %~1 set bai2=-&set llis=a)
  87. (if "%1"=="" if !num2! equ 15 set bai2=-)
  88. (set /a num1!bai1!=2&set /a num2!bai2!=1)
  89. (mode con cols=!num1! lines=!num2!))
  90. (color 1f)
  91. for /l %%a in (1 1 1500) do (ver>nul)
  92. goto :eof
  93. :sansuo
  94. endlocal&(set k16=%k4%%k4%%k4%%k4%)
  95. set _=0&set ")=%k16%"&(set "(=欢迎您的加入 !!!")
  96. set "T="
  97. :loop
  98. (set/p=%(%<nul)
  99. if,%_%,geq,500,echo.&echo.&echo.&pause&exit
  100. (set/p=%T%<nul)
  101. (for /l,%%i,in,(1,1,1500),do,ver>nul)
  102. set (=%)%&set ")=%(%"&(set/a "_+=1")
  103. goto loop
  104. :texiao 以下代码 作者:泛滥棏慌
  105. echo\&echo\
  106. set pcl=8 4 -1 4 -1 4 -1 10 -1 8 -1 16 -7 , 8 4 -1 4 -1 4 -1 10 -1 8 -1 8 -5 4 -1 4 -1 , 8 -4 2 -1 4 -1 10 -4 2 -1 12 -1 2 -7 , 8 4 -1 4 -1 4 -1 2 -1 6 -1 4 -1 2 -2 10 -1 2 -1 4 -1 4 -1 , 8 4 -1 4 -2 2 -2 6 -1 6 -1 2 -1 2 -1 4 -5 4 -1 4 -1 , 8 4 -2 2 -1 4 -1 8 -1 4 -1 4 -1 4 -1 6 -1 2 -7 , 8 -3 4 -1 4 -1 6 -1 2 -1 2 -1 4 -1 12 -1 8 -1 , 8 4 -1 4 -1 4 -1 12 -1 6 -1 12 -1 4 -5 , 8 4 -1 4 -1 2 -2 2 -1 8 -1 6 -1 12 -2 6 -1 , 8 4 -1 4 -2 2 -1 2 -1 6 -1 2 -2 2 -1 8 -2 10 -1 , 8 -3 4 -1 4 -3 2 -2 8 -5 8 -8
  107. for %%i in (!pcl!) do (
  108. if "%%i"=="," (echo.&for /l %%a in (1 1 300) do ver>nul)
  109. (set a=%%i)&(set b=!a:-=!)
  110. if %%i lss 0 (for /l %%j in (1,1,!b!) do (set/p=▓<nul)) else (
  111. for /l %%k in (1,1,%%i) do (set/p= <nul)))
  112. (ping/n 3 127.1>nul)
  113. goto :eof
复制代码





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