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

来自批处理点阵的疑问?

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是什么意思啊      我经常看到这种东西 不知道干吗用的   能不能给个短的例子说一下
ss

说老实话,我也没看懂楼主列出的这一大堆,但估计类同如下:
  1. @echo off
  2. 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"
  3. for /f "tokens=6 delims=," %%i in ("%a%") do set "b=%%i"
  4. echo %b%&pause>nul
复制代码
  就是先将一大堆彼此用,号格开的字符赋值给一个变量如a,然后要根据所需来提取相
应的字符如"tokens=6 delims=,",最后得到值为f的变量b。
***共同提高***

TOP

@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

TOP

普通的变量,只是字串是你不常见到的而已。
大多用在矩阵中、、
心绪平和,眼藏静谧。

TOP

哦  谢谢 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  是你们所说的吗    谢谢
ss

TOP

回复 2楼 的帖子

谢谢版主 你所说的意思 我明白  但我不知到  我所发的是不是那意思  呵呵   希望支持呵呵
ss

TOP

支持,以下随风版主帖。

  1. @echo off&mode con: cols=100 lines=30
  2. echo.&color 1f&title 天佑中华
  3. set var=abcdef
  4. set /p= <nul>●
  5. setlocal enabledelayedexpansion
  6. for /f "skip=22 delims=" %%a in ('type "%~0"') do (
  7.   set /a m+=1
  8.   call :loop %%a
  9.   echo.
  10.   if !m! equ 11 echo.&echo.&echo.
  11. )
  12. pause>nul&exit
  13. :loop
  14. if "%1"=="" goto :eof
  15. set /a w=%random%%%5+1
  16. set h=!var:~%w%,1!
  17. for /f "tokens=1,2 delims=-" %%a in ("%~1") do (
  18.   for /l %%l in (1 1 %%a) do set /p= <nul
  19.   for /l %%l in (1 1 %%b) do findstr /a:%h% . ●*
  20. )
  21. shift
  22. goto loop
  23. 7-1 4-1 14-1 6-4 6-9 12-1 4-1
  24. 7-1 4-1 2-1 6-5 2-1 4-1 14-1 12-11
  25. 5-1 6-1 4-1 6-1 8-4 14-1 18-1 6-1
  26. 5-9 4-1 8-1 4-1 14-1 16-1 2-1 2-1 4-1
  27. 3-2 6-1 12-4 2-1 2-2 4-11 4-3 4-3
  28. 1-1 2-1 6-1 20-1 21-1 16-1 2-1 4-1 2-1
  29. 5-1 6-2 10-9 12-1 2-1 12-4 2-5
  30. 5-1 4-1 4-1 16-1 20-1 2-1
  31. 5-1 4-1 4-1 10-7 12-1 6-1 10-1 2-1 2-1 4-2
  32. 5-1 2-1 8-1 14-1 16-1 10-1 8-1 2-1 4-1 2-1 2-1
  33. 5-2 12-1 2-11 2-2 14-2 2-1 4-6 2-1
  34. 5-1 6-1 18-1 2-1 2-1 16-1 18-1 4-1
  35. 5-1 6-1 10-4 4-1 4-1 14-1 16-1 6-1 4-1
  36. 5-9 8-1 4-1 12-9 6-2 6-1 2-1
  37. 3-2 6-1 10-11 4-1 6-1 6-1 4-1 2-1 4-3 4-1
  38. 3-2 4-1 18-1 4-1 12-1 6-1 6-1 8-3 2-1 6-1
  39. 1-1 2-1 4-5 10-1 2-2 4-1 6-1 6-1 6-1 8-1 6-1 0-4
  40. 5-1 2-2 6-1 8-3 2-1 2-1 8-9 14-1
  41. 5-2 2-1 6-1 4-2 2-1 6-1 18-1 12-11
  42. 5-1 4-1 6-1 10-1 4-2 4-1 12-1 22-1
  43. 5-1 4-1 6-1 10-3 4-1 2-1 12-1 22-1
  44. 5-1 4-5 6-3 10-2 12-1 22-1
复制代码
心绪平和,眼藏静谧。

TOP

回复 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
什么意思不懂啊   呵呵  可以花点时间讲解一下 吗啊呵呵 谢谢诶  期待中 肯定很多人不懂的  呵呵 谢谢  版主
ss

TOP

也没人回帖啊  郁闷 呢  版主告诉我说  -1是什么空格之类的   不懂啊
ss

TOP

我就来讲解下吧:

这里的call :loop %%a中的%%a就是下面for中的%1,即主程序通过call传递给子程序
loop的第一个参数(这里也只有一个参数%%a)。

而这里for /f "tokens=1,2 delims=-" 的意思就是取下面点阵中以"-"号为分隔符的第一行
第一列和第二列的字符(数值)并以变量%%a %%b来命名,同时用shift命令来将变量
移位以依次取得点阵中一行中的数值(一次取两个,如6-4取6和4)。

最后通过循环来实现对点阵中所有行的数值的获取和执行。
***共同提高***

TOP

回复 11楼 的帖子

我的意思是说 其中的 7-1 4-1 14-1 6-4 6-9 12-1 4-1 中的 什么意思啊   你上次不是跟我说什么 空格子类的东西啊
ss

TOP

原帖由 sihonghong20061 于 2008-8-2 20:01 发表
我的意思是说 其中的 7-1 4-1 14-1 6-4 6-9 12-1 4-1 中的 什么意思啊   你上次不是跟我说什么 空格子类的东西啊

这就是个空格,如果不用空格格开,你怎么区分这些数据呢,这也是for语句中默认的分隔符之一。
***共同提高***

TOP

返回列表