Board logo

标题: [文本处理] 批处理命令for/f如何处理几十个字符串? [打印本页]

作者: woodywoola    时间: 2012-2-22 10:04     标题: 批处理命令for/f如何处理几十个字符串?

  1. @echo off
  2. for /f "tokens=1-3 delims=," %%i  in ("733100,72549,99") do (
  3. echo %%i
  4. echo %%j
  5. echo %%k
  6. pause
  7. )
复制代码
像这样的处理 如果有几十个数据 那变量怎么写?
作者: BAT1    时间: 2012-2-22 10:11

本帖最后由 BAT1 于 2012-2-22 10:14 编辑

把数据切的短一点不行吗 ?

几十个数据全部都要引用?还是一行数据有几十组,只需要取其中的几组或十几组。
作者: woodywoola    时间: 2012-2-22 10:24

从一个txt文档里根据分隔符取出来,然后一个一个处理再输出。
怎么做?
作者: QIAOXINGXING    时间: 2012-2-22 12:30

能不能把分割符全部替换为空格,然后:
  1. @echo off&setlocal enabledelayedexpansion&cd /d "%~dp0"
  2. for /f "delims=" %%i in (test.txt) do (
  3.   for %%a in (%%i) do (echo %%a)
  4. )
  5. pause
复制代码

作者: ivor    时间: 2012-2-22 13:06

回复 4# QIAOXINGXING


    CD 命令可以省略
作者: QIAOXINGXING    时间: 2012-2-22 15:01

本帖最后由 QIAOXINGXING 于 2012-2-22 15:03 编辑

回复 5# ivor


    呵呵,,,新建的模板是这样的,懒得删了。。。。。
变量延迟貌似也没用上。。。。
作者: lvsehuaxue    时间: 2012-2-22 20:17

用不带开关的for。
  1. @echo off
  2. for %%i  in ("733100,72549,99") do for %%i in (%%~i) do echo %%i
  3. pause
复制代码

作者: apang    时间: 2012-2-22 22:48

回复 4# QIAOXINGXING


不用替换成空格,“,”本身就是分割符吧?
  1. @echo off
  2. for /f "delims=" %%i in (test.txt) do for %%j in (%%i) do echo %%j
  3. pause
复制代码

作者: Perl    时间: 2012-2-22 23:01

回复 3# woodywoola


把文档内容贴出来看看吧
作者: cjiabing    时间: 2012-2-22 23:25

山有尽,水有穷,批处理有不足。另外想拓展的办法。逐节来也是可行的,或者用for嵌套也可以。但避免使用太多变量才是主要的思路。
作者: QIAOXINGXING    时间: 2012-2-23 00:21

回复  QIAOXINGXING


不用替换成空格,“,”本身就是分割符吧?
apang 发表于 2012-2-22 22:48



    对啊,空格,逗号,分号,等号,都是分隔符,,,,
  现在不少东西还没接触,接触的也只学了个大概,很多细节都不太清楚啊。。。。。




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