标题: 来自批处理点阵的疑问? [打印本页]
作者: sihonghong20061 时间: 2008-8-1 16:00 标题: 来自批处理点阵的疑问?
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是什么意思啊 我经常看到这种东西 不知道干吗用的 能不能给个短的例子说一下
作者: batman 时间: 2008-8-1 20:27
说老实话,我也没看懂楼主列出的这一大堆,但估计类同如下:- @echo off
- set "a=a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z"
- for /f "tokens=6 delims=," %%i in ("%a%") do set "b=%%i"
- echo %b%&pause>nul
复制代码
就是先将一大堆彼此用,号格开的字符赋值给一个变量如a,然后要根据所需来提取相
应的字符如"tokens=6 delims=,",最后得到值为f的变量b。
作者: xjxxdnmwj 时间: 2008-8-1 20:31
@echo off
set aa=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 (a %aa% g) do @echo %%i
pause
没什么意思.一个一个取罢了.比如你要
@echo off
set aa=b c d e f g h i j k l m n
FOR %%i in (a %aa% o) do @echo %%i
pause
就显示a到o
作者: pusofalse 时间: 2008-8-1 20:39
普通的变量,只是字串是你不常见到的而已。
大多用在矩阵中、、
作者: sihonghong20061 时间: 2008-8-1 21:30
哦 谢谢 echo.
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 %%z in (1,1,255) do (
if not !long! equ 0 set /a long-=1
for /l %%j in (1,1,87) do (set/p=<nul)
for /l %%k in (1,1,!long!) do (set/p= <nul)
set /a longn+=1
set /a longs=longn-43
set /a remnant=255-43
if !longn! lss 43 (set/p=!,:~0,%%z!<nul) else (
if !longn! geq !remnant! (
set /a minus-=1
set /a minuss=minus*2
for /l %%l in (1,1,!minus!) do (set/p= <nul)
for /l %%j in (1,1,!minuss!) do (set/p=<nul)
call set/p=%%,:~!longs!,43%%<nul
) else (
call set/p=%%,:~!longs!,43%%<nul
)
)
call :delay 40 修改这个数字可以调整走字的速度.
)
call :delay 700&exit
:delay
for /l %%i in (1,1,%1) do (error>nul 2>nul)
goto :eof
就是这p 是你们所说的吗 谢谢
作者: sihonghong20061 时间: 2008-8-1 21:33 标题: 回复 2楼 的帖子
谢谢版主 你所说的意思 我明白 但我不知到 我所发的是不是那意思 呵呵 希望支持呵呵
作者: pusofalse 时间: 2008-8-2 05:05 标题: 支持,以下随风版主帖。
- @echo off&mode con: cols=100 lines=30
- echo.&color 1f&title 天佑中华
- set var=abcdef
- set /p= <nul>●
- setlocal enabledelayedexpansion
- for /f "skip=22 delims=" %%a in ('type "%~0"') do (
- set /a m+=1
- call :loop %%a
- echo.
- if !m! equ 11 echo.&echo.&echo.
- )
- pause>nul&exit
- :loop
- if "%1"=="" goto :eof
- set /a w=%random%%%5+1
- set h=!var:~%w%,1!
- for /f "tokens=1,2 delims=-" %%a in ("%~1") do (
- for /l %%l in (1 1 %%a) do set /p= <nul
- for /l %%l in (1 1 %%b) do findstr /a:%h% . ●*
- )
- shift
- goto loop
- 7-1 4-1 14-1 6-4 6-9 12-1 4-1
- 7-1 4-1 2-1 6-5 2-1 4-1 14-1 12-11
- 5-1 6-1 4-1 6-1 8-4 14-1 18-1 6-1
- 5-9 4-1 8-1 4-1 14-1 16-1 2-1 2-1 4-1
- 3-2 6-1 12-4 2-1 2-2 4-11 4-3 4-3
- 1-1 2-1 6-1 20-1 21-1 16-1 2-1 4-1 2-1
- 5-1 6-2 10-9 12-1 2-1 12-4 2-5
- 5-1 4-1 4-1 16-1 20-1 2-1
- 5-1 4-1 4-1 10-7 12-1 6-1 10-1 2-1 2-1 4-2
- 5-1 2-1 8-1 14-1 16-1 10-1 8-1 2-1 4-1 2-1 2-1
- 5-2 12-1 2-11 2-2 14-2 2-1 4-6 2-1
- 5-1 6-1 18-1 2-1 2-1 16-1 18-1 4-1
- 5-1 6-1 10-4 4-1 4-1 14-1 16-1 6-1 4-1
- 5-9 8-1 4-1 12-9 6-2 6-1 2-1
- 3-2 6-1 10-11 4-1 6-1 6-1 4-1 2-1 4-3 4-1
- 3-2 4-1 18-1 4-1 12-1 6-1 6-1 8-3 2-1 6-1
- 1-1 2-1 4-5 10-1 2-2 4-1 6-1 6-1 6-1 8-1 6-1 0-4
- 5-1 2-2 6-1 8-3 2-1 2-1 8-9 14-1
- 5-2 2-1 6-1 4-2 2-1 6-1 18-1 12-11
- 5-1 4-1 6-1 10-1 4-2 4-1 12-1 22-1
- 5-1 4-1 6-1 10-3 4-1 2-1 12-1 22-1
- 5-1 4-5 6-3 10-2 12-1 22-1
复制代码
作者: sihonghong20061 时间: 2008-8-2 13:56 标题: 回复 7楼 的帖子
版主 遇到问题了 就是7-1 4-1 14-1 6-4 6-9 12-1 4-1
7-1 4-1 2-1 6-5 2-1 4-1 14-1 12-11
5-1 6-1 4-1 6-1 8-4 14-1 18-1 6-1
5-9 4-1 8-1 4-1 14-1 16-1 2-1 2-1 4-1
3-2 6-1 12-4 2-1 2-2 4-11 4-3 4-3
1-1 2-1 6-1 20-1 21-1 16-1 2-1 4-1 2-1
5-1 6-2 10-9 12-1 2-1 12-4 2-5
5-1 4-1 4-1 16-1 20-1 2-1
5-1 4-1 4-1 10-7 12-1 6-1 10-1 2-1 2-1 4-2
5-1 2-1 8-1 14-1 16-1 10-1 8-1 2-1 4-1 2-1 2-1
5-2 12-1 2-11 2-2 14-2 2-1 4-6 2-1
5-1 6-1 18-1 2-1 2-1 16-1 18-1 4-1
5-1 6-1 10-4 4-1 4-1 14-1 16-1 6-1 4-1
5-9 8-1 4-1 12-9 6-2 6-1 2-1
3-2 6-1 10-11 4-1 6-1 6-1 4-1 2-1 4-3 4-1
3-2 4-1 18-1 4-1 12-1 6-1 6-1 8-3 2-1 6-1
1-1 2-1 4-5 10-1 2-2 4-1 6-1 6-1 6-1 8-1 6-1 0-4
5-1 2-2 6-1 8-3 2-1 2-1 8-9 14-1
5-2 2-1 6-1 4-2 2-1 6-1 18-1 12-11
5-1 4-1 6-1 10-1 4-2 4-1 12-1 22-1
5-1 4-1 6-1 10-3 4-1 2-1 12-1 22-1
5-1 4-5 6-3 10-2 12-1 22-1
什么意思不懂啊 呵呵 可以花点时间讲解一下 吗啊呵呵 谢谢诶 期待中 肯定很多人不懂的 呵呵 谢谢 版主
作者: sihonghong20061 时间: 2008-8-2 19:28
也没人回帖啊 郁闷 呢 版主告诉我说 -1是什么空格之类的 不懂啊
作者: batman 时间: 2008-8-2 19:48
我就来讲解下吧:
这里的call :loop %%a中的%%a就是下面for中的%1,即主程序通过call传递给子程序
loop的第一个参数(这里也只有一个参数%%a)。
而这里for /f "tokens=1,2 delims=-" 的意思就是取下面点阵中以"-"号为分隔符的第一行
第一列和第二列的字符(数值)并以变量%%a %%b来命名,同时用shift命令来将变量
移位以依次取得点阵中一行中的数值(一次取两个,如6-4取6和4)。
最后通过循环来实现对点阵中所有行的数值的获取和执行。
作者: sihonghong20061 时间: 2008-8-2 20:01 标题: 回复 11楼 的帖子
我的意思是说 其中的 7-1 4-1 14-1 6-4 6-9 12-1 4-1 中的 什么意思啊 你上次不是跟我说什么 空格子类的东西啊
作者: batman 时间: 2008-8-2 20:21
原帖由 sihonghong20061 于 2008-8-2 20:01 发表
我的意思是说 其中的 7-1 4-1 14-1 6-4 6-9 12-1 4-1 中的 什么意思啊 你上次不是跟我说什么 空格子类的东西啊
这就是个空格,如果不用空格格开,你怎么区分这些数据呢,这也是for语句中默认的分隔符之一。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |