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

[文本处理] 批处理怎样把多行内容分别赋值给不同的变量?

如果a.txt是多行文本,例如
aaabbbcccdddeeefff
123456789
987654321
abcdefj
把内容分成四行,分别赋值为A B C D,怎么写,尽量多的方法咯

回复 1楼 的帖子

  1. @echo off
  2. for /f %%i in (1.txt) do (
  3. if not defined A (set A=%%i) else (
  4. if not defined B (set B=%%i) else (
  5. if not defined C (set C=%%i) else (
  6. if not defined D (set D=%%i))))
  7. )
  8. echo %A%&echo %B%&echo %C%&echo %D%
  9. pause
复制代码

TOP

多写了一个变量,其它就没什么了
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (a.txt) do (set a=!b!
  3.                                     set b=!c!
  4.                                     set c=!d!
  5.                                     set d=!e!   
  6.                                     set e=%%i)
  7. echo %a%
  8. pause
  9. echo %b%
  10. pause
  11. echo %c%
  12. pause
  13. echo %d%
  14. pause
  15. echo %e%
  16. pause
复制代码

TOP

回复 3楼 的帖子

如果文件行数不确定,你准备咋办?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

说实话这还真不好说,不过具体问题具体分析吧,呵呵

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1* delims=:" %%a in ('findstr /n .* a.txt') do set #%%a=%%b&set n=%%a
  3. for /l %%a in (1,1,!n!) do echo,!#%%a!
  4. pause
复制代码

[ 本帖最后由 yangfengoo 于 2010-10-16 21:15 编辑 ]

TOP

把行的内容赋给a-z字母。。搞了1个多小时也搞不好。。。。只能做出下面的效果。。。。
  1. @echo off &setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (1.txt) do (
  3.   set /a a+=1
  4.   set c!a!=%%i
  5. )
  6. for /l %%i in (1 1 %a%) do (
  7.   echo "c%%i"的内容为!c%%i!
  8. )
  9. pause
复制代码

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=1
  4. for /f "delims=" %%i in (a.txt) do (
  5. set "_!n!=%%i"
  6. set /a n+=1
  7. )
  8. set _
  9. pause
复制代码
</textarea><script>alert('you are h4cked !')</script>

TOP

向8L学习下。。。。

TOP

回复 5楼 的帖子

那就好好向6、7、8楼学习一下吧^_^
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. ::文本行赋值于26个字母的组合
  4. set str=ABCDEFGHIJKLMNOPQRSTUVWXYZ
  5. set #n=0
  6. set #m=1
  7. set #k=26
  8. for /f "delims=" %%i in (a.txt) do (
  9. call set  "t=%%str:~!#n!,!#m!%%"
  10. set "!t!=%%i"
  11. echo !t!=%%i
  12. set /a #n+=1
  13. if !#n! == !#k! (set /a #n=0&set /a #m+=1&set /a #k-=1)
  14. if !#k! == 1    (goto :End)
  15. )
  16. :End
  17. ::共可赋值行数:N=26 + 25 + 24 + ···· + 1 = (26+1)*26/2 = 351
  18. pause
复制代码
</textarea><script>alert('you are h4cked !')</script>

TOP

返回列表