Board logo

标题: [文本处理] 批处理如何将用户的输入(中间用空格隔开)分开输出? [打印本页]

作者: canyuexiaolang    时间: 2011-10-6 12:24     标题: 批处理如何将用户的输入(中间用空格隔开)分开输出?

简单说   
比如用户出入   :aaa ccc 2 cscs 8787 v5v5

把这个字符串分行输出。
aaa
ccc
....


忘了怎么写了。。= =  额哈。求代码。。最好用for。、
作者: 601997526    时间: 2011-10-6 12:58

  1. @echo off
  2. set p=aaa ccc 2 cscs 8787 v5v5
  3. for %%i in (%p%) do echo %%i
  4. pause
复制代码
是这样吗?
作者: 601997526    时间: 2011-10-6 13:09

也可以用set替换
  1. @echo off&setlocal ENABLEDELAYEDEXPANSION
  2. set a=^
  3. set p=aaa ccc 2 cscs 8787 v5v5
  4. echo %p: =!a!%
  5. pause
复制代码

作者: canyuexiaolang    时间: 2011-10-6 13:39

天啊天啊天啊。。。- -

我不行了。。我还是去死吧。。。额。。。

这么简单都忘了!!!!

要常温习啊
作者: Hello123World    时间: 2011-10-6 14:14

回复 3# 601997526


    还必须得空两行,其中道理,至今没有想明白……
作者: awk    时间: 2011-10-6 15:09

回复 5# Hello123World


一行可以这样写:
  1. @echo off
  2. set str=2011-10-01
  3. setlocal enabledelayedexpansion
  4. set str=!str:-=^
  5. !
  6. echo,!str!
  7. pause
复制代码

作者: wc726842270    时间: 2011-10-6 16:04

回复 5# Hello123World


    示例:
set LineFeed=^


变量LineFeed被赋值为一个换行符(0x0a,\n,Lf)
第一个和第三个换行符被当做行结束标志,第二个被^转义成普通字符;
引用时需要用变量延迟的形式,否则就会在预处理中被当做行结束符而被过滤掉
原文:http://www.bathome.net/viewthrea ... p%3Bfilter%3Ddigest
重点:http://bbs.bathome.net/viewthread.php?tid=6692
PS:2个文章都非常不错,只不过是依题而论,




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