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

TOP

本帖最后由 zm900612 于 2011-6-26 10:31 编辑

9# cjiabing

用一个临时变量可以提取倒数第一列,那么用两个变量就可以提取倒数第二个...
或者在一个临时变量中以一个不属于原有字符串的字符作为分隔符来存储多个变量:
set str=123  哈哈 789  A
for %%a in (%str%) do (
   set "tmp=!tmp:*|=!%%a|"
)
for /f "delims=|" %%a in ("%tmp%") do echo %%a



不含特殊字符时可以:
  1. @echo off&setlocal enabledelayedexpansion
  2. set str=123  哈哈 789  A
  3. set "tmp=1|2|"
  4. for %%a in (%str%) do set "tmp=!tmp:*|=!%%a|"
  5. ::将多个变量存储在一个变量中
  6. for /f "delims=|" %%a in ("%tmp%") do echo %%a
  7. pause
复制代码


没有重复列时可以:
  1. @echo off&setlocal enabledelayedexpansion
  2. set str=123  哈哈 789  A
  3. set str$=%str%$
  4. for %%a in (%str%) do set "end=%%a$"
  5. for %%a in (!str$: %end%^=!) do set end=%%a
  6. ::替换最后一列
  7. echo %end%
  8. pause
复制代码

TOP

将分隔符替换成换行符:
  1. @echo off&setlocal enabledelayedexpansion
  2. set str=123  哈哈? *.* 789  A”中的a
  3. set hh=^
  4. for %%a in ("!hh!") do (
  5.    for /f "delims=" %%b in ("!str: =%%~a!") do set end=%%b
  6. )
  7. echo %end%
  8. pause
复制代码

TOP

返回列表