找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 27783|回复: 13

[文本处理] 批处理文件中怎么只用一个%%i分行输出字符?

[复制链接]
发表于 2011-12-17 15:45:21 | 显示全部楼层 |阅读模式

  1. @echo offset "out=3,4;2,1\9,2;5,7;4,6"
  2. for /f "delims=" %%i in (%out%) do echo %%i
  3. pause
复制代码
以\为分割符,分两行输出,结果是
3,4;2,1
9,2;5,7;4,6

不借助第三方,可否做到、、、
发表于 2011-12-17 15:58:06 | 显示全部楼层

  1. @echo off
  2. set "out=3,4;2,1\9,2;5,7;4,6"
  3. for /f "tokens=1,2 delims=" %%a in (%out%) do (
  4.     echo %%a
  5.     echo %%b
  6. pause
复制代码
这样就行了吗
 楼主| 发表于 2011-12-17 16:01:49 | 显示全部楼层
回复 2# 冷玉公子



   额。。只用一次%%i,否则也就不问了。。。。
我的代码只是范例,这个应该需要改动的
发表于 2011-12-17 17:07:01 | 显示全部楼层
硬要用for是不行的!你用了delims=\
就说名有2个变量!如果2个变量能用1个变量显示出来,那还需要2个变量么?
  1. @echo off
  2. set "out=3,4;2,1\9,2;5,7;4,6"
  3. set a=%out:~0,7%
  4. set b=%out:~8%
  5. echo %a%
  6. echo %b%
  7. pause
复制代码
发表于 2011-12-17 17:15:42 | 显示全部楼层
回复 3# canyuexiaolang


请说说这个需求怎么改
 楼主| 发表于 2011-12-17 17:44:16 | 显示全部楼层
回复 5# awk

set "out=3,4;2,1\9,2;5,7;4,6"
以\为分割符,分两行输出,结果是
3,4;2,1
9,2;5,7;4,6


只用一次%%i

或许不用for吧..
发表于 2011-12-17 17:50:06 | 显示全部楼层
回复 6# canyuexiaolang


2楼那个不就是只用了一次吗,没有用第二次啊。
发表于 2011-12-17 18:01:25 | 显示全部楼层
  1. @echo off
  2. set "out=3,4;2,1\9,2;5,7;4,6"
  3. setlocal enabledelayedexpansion
  4. set result=!out:\=^

  5. !
  6. echo,!result!
  7. pause
复制代码

评分

参与人数 2技术 +2 收起 理由
jellyhk + 1 牛!
CrLf + 1 思路灵活,一招致命

查看全部评分

 楼主| 发表于 2011-12-17 19:31:54 | 显示全部楼层
好吧。。。这个让我折服了。。。
发表于 2011-12-18 10:39:45 | 显示全部楼层
本帖最后由 jellyhk 于 2011-12-18 10:41 编辑
  1. set result=!out:\=^

  2. !
  3. echo,!result!
复制代码
8楼的代码谁能帮忙解释下!看不懂!
第1行:
=!out:\=^ 这个是从哪里变化出来的什么意思?
第3行:
为什么要单独用!
第4行:为什么echo后要加个逗号
发表于 2011-12-18 11:51:34 | 显示全部楼层
回复 10# jellyhk


把\替换成换行
发表于 2011-12-18 13:37:56 | 显示全部楼层
本帖最后由 jellyhk 于 2011-12-18 13:39 编辑

回复 11# awk
啊 !一句点醒梦中人啊!
\=^

!
因为^把换行转义!所以第2行的行替换\
- -!!
居然!!能分开!
这样写都行!哎 !你是怎么想出来的?
发表于 2011-12-18 13:45:29 | 显示全部楼层
回复 12# jellyhk


我也是看到别人那样写的
发表于 2011-12-20 16:28:53 | 显示全部楼层
这种写法也用过、也问过,但是其原理还是没有明白,只好暂存疑问在心底。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 12:50 , Processed in 0.020554 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表