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

[文本处理] 批处理命令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:14 编辑

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

几十个数据全部都要引用?还是一行数据有几十组,只需要取其中的几组或十几组。

TOP

从一个txt文档里根据分隔符取出来,然后一个一个处理再输出。
怎么做?

TOP

能不能把分割符全部替换为空格,然后:
  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
复制代码

TOP

回复 4# QIAOXINGXING


    CD 命令可以省略

TOP

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

回复 5# ivor


    呵呵,,,新建的模板是这样的,懒得删了。。。。。
变量延迟貌似也没用上。。。。

TOP

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

TOP

回复 4# QIAOXINGXING


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

TOP

回复 3# woodywoola


把文档内容贴出来看看吧

TOP

山有尽,水有穷,批处理有不足。另外想拓展的办法。逐节来也是可行的,或者用for嵌套也可以。但避免使用太多变量才是主要的思路。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

回复  QIAOXINGXING


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



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

TOP

返回列表