标题: [转贴] 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
- @echo off&setlocal enabledelayedexpansion
- title code by 泛滥棏慌° 2007-12-1 bbs.bathome.net
- mode con: cols=87 lines=15
- for /l %%l in (1 1 42) do set "ko= !ko!"
- color 1a&echo\&set,=!ko!^
- 我们,是一群执著的批处理爱好者^
- 在色彩斑斓的WINDOWS下,开启CMD这扇深邃的窗口^
- 曾经挑灯夜战,曾经彻夜不眠^
- 我们之所以如此似痴若狂,是因为我们深知:^
- 尺有所短、寸有所长,CMD不同凡响^
- 我们精益求精,力求完美^
- 所有的努力,只为了用最简洁的语言,编写最具实用性的代码^
- 批处理之家BBS.BATHOME.CN^
- 高手汇聚、资料齐全、是新手入门的福地、老手晋级的乐园^
- 不求最大、但求最好、展现批处理的无穷魅力、一切精彩,尽在~~批处理之家~~ 演示完毕。再见!!
- :: ----------------------------------------------▓批处理▓----------------------------------------------------------
- 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 (
- (if "%%i"=="," (echo.&ping -n 1 127.1>nul)) && (set a=%%i)&(set b=!a:-=!)
- 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)
- ))
- :: ----------------------------------------------▓批处理▓----------------------------------------------------------
- call :delay 700&echo\&echo\
- for /l %%l in (1 1 255) do (
- set /p=!,:~0,43!<nul
- call :delay 40 修改这个数字可以调整走字的速度.
- for /l %%j in (1,1,87) do (set/p=<nul)
- set ,=!,:~1!
- )
- call :delay 700&exit
- :delay
- for /l %%i in (1,1,%1) do (error>nul 2>nul)
- goto :eof
复制代码
【动画特效】随风版批处理之家论坛bat广告[分行显示] .bat
-
- @echo off&setlocal EnableDelayedExpansion
- goto start_1
- 我们,是一群执著的批处理爱好者
- 在色彩斑斓的Windows下,开启CMD这扇深邃的窗口
- 曾经挑灯夜战,曾经彻夜不眠
- 我们之所以如此似痴若狂,是因为我们深知:
- 尺有所短、寸有所长,CMD不同凡响
- 我们精益求精,力求完美
- 所有的努力,只为了用最简洁的语言,编写最具实用性的代码
- 批处理之家 bbs.bathome.net
- 高手汇聚、资料齐全、是新手入门的福地、老手晋级的乐园
- 不求最大、但求最好、展现批处理的无穷魅力、一切精彩,尽在 ~~ 批处理之家 ~~
- :start_1
- (set num1=90&set num2=15&set "ko= ")
- (mode con: cols=!num1! lines=!num2!)
- (set k4=!ko!!ko!!ko!!ko!)
- (title code by 随风 2007-12-1 @bbs.bathome.net)
- for /l %%a in (1 1 5) do (set yanse=!yanse!abcdef123456789)
- (set fang=■&echo.&echo.&set ",=0123456789"&set "hanghao=12")
- for /l,%%a,in,(1,1,20),do,(set k=!k!!ko!)
- for /f,"tokens=1* delims=:" %%a,in,('findstr /n .* "%~0"'),do,(
- if,%%a,leq,%hanghao%,(set _%%a=%%b))
- (set "_1=%k%批处理之家!ko!!ko!bbs.bathome.net!ko!!ko!欢迎您")
- (set "_2=!k4!!k4!!ko!!ko!网址:bbs.bathome.net")
- (set "_2=!_2!!k4!群号:43011867!k4!站长:youxi01")
- (set sans=!k4!!k4!!ko!────!k4!批处理之家!ko!!ko!bbs.bathome.net!k4!!ko!)
- ::======================================================================
- call :cuko
- for /l %%a in (1 1 28) do (set "kkk= !kkk!")
- (set kait=%kkk%批处理之家!ko!!ko!bbs.bathome.net!ko!!ko!欢迎您)
- echo\&echo\&echo\
- for /l %%k in (0 1 100) do (
- if not "!kait:~%%k,1"=="" (set/p=!kait:~%%k,1!<nul)
- for /l %%i in (1 1 100) do ver>nul)
- (echo.&echo.&echo.&echo.&set/p=!k4!!k4!!ko!!ko!!ko!<nul)
- for /l %%a in (1 1 33) do (
- (set /a jind=%%a*3)
- (set "jind=!k4!!jind!")
- (set "jind=!jind:~-3!")
- (set /p=%fang%!jind!%%<nul)
- (set /p=<nul)
- for /l %%i in (1 1 300) do ver>nul)
- (set/p= 100%%<nul)&(ping/n 3 127.1>nul)
- call :cuko
- call :texiao
- call :cuko 17
- echo CMD-BAT
- for /l,%%a,in,(1,1,%hanghao%),do,(
- (set "]=0")
- for /l,%%i,in,(0,1,100),do,(
- (set /=!_%%a!)
- if,not,"!_%%a:~%%i,1!"=="",(set /a]+=1))
- call :lis
- if %%a equ 2 echo.)
- (echo\&echo\&echo\&color 1a)
- (set/p=!sans!<nul)
- goto sansuo
- :lis
- (echo\&echo\&set/p= !k4!<nul)
- (set /a "\=!]:~0,1!")
- set/a?=1/(1/!]:~-1!)2>nul||(set "/=!/! ")
- set/a?=1/(10/])2>nul&&(set \=1&set:=1)||(set:=0)
- for /l,%%a,in,(!:! 1 !\!),do,(
- (set "{=")
- if,%%a,equ,!\!,(set }=!]:~-1!),else,(set }=9)
- for /l,%%i,in,(0 1 !}!),do,(set {=!{!%%i)
- call :xs)
- goto :eof
- :xs
- for /l,%%k,in,(0 1 !}!),do,(
- (call,call,call,set /p=%%%%%%%%/:~%%%%{:~%%,:~%%k,1%%,1%%%%,1%%%%%%%%<nul)
- for /l,%%i,in,(1,1,200),do,ver>nul)
- (set /a "sq=}+1")
- (call,set "/=%%/:~!sq!%%")
- goto :eof
- :cuko
- (set quese=0&set ookk=)&(set bai1=-&set bai2=-)
- for /l %%i in (1,1,72) do (
- for /l %%h in (2 2 72) do (if "%%i"=="%%h" set ookk=a)
- (call set pys=%%yanse:~!quese!,1%%)
- (color !pys!1)
- (if defined ookk set /a quese+=1&set ookk=)
- (if %%i gtr 36 set bai1=+)
- (if !num2! equ 3 set bai2=+)
- if not "%1"=="" (
- if not defined llis if !num2! equ %~1 set bai2=-&set llis=a)
- (if "%1"=="" if !num2! equ 15 set bai2=-)
- (set /a num1!bai1!=2&set /a num2!bai2!=1)
- (mode con cols=!num1! lines=!num2!))
- (color 1f)
- for /l %%a in (1 1 1500) do (ver>nul)
- goto :eof
- :sansuo
- endlocal&(set k16=%k4%%k4%%k4%%k4%)
- set _=0&set ")=%k16%"&(set "(=欢迎您的加入 !!!")
- set "T="
- :loop
- (set/p=%(%<nul)
- if,%_%,geq,500,echo.&echo.&echo.&pause&exit
- (set/p=%T%<nul)
- (for /l,%%i,in,(1,1,1500),do,ver>nul)
- set (=%)%&set ")=%(%"&(set/a "_+=1")
- goto loop
- :texiao 以下代码 作者:泛滥棏慌
- echo\&echo\
- 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
- for %%i in (!pcl!) do (
- if "%%i"=="," (echo.&for /l %%a in (1 1 300) do ver>nul)
- (set a=%%i)&(set b=!a:-=!)
- 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)))
- (ping/n 3 127.1>nul)
- goto :eof
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |