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

[文本处理] [已解决]BAT批处理怎样在一行中,提取多个变量?

[复制链接]
 楼主| 发表于 2014-3-14 08:44:01 | 显示全部楼层
回复 13# terse


    是不是哪里写错拉,输出只有,=这两个符号
 楼主| 发表于 2014-3-14 08:58:12 | 显示全部楼层
回复 12# DAIC


    哈哈,原来下载的sed是没有i选项的,我从论坛下载一个[new]sed-4.2.1-bin.zip,可以了,不好意思啊,谢谢了。
发表于 2014-3-14 09:13:36 | 显示全部楼层
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (1.txt) do (
  3.         set a=%%a
  4.         set a=!a:,= !
  5.         for %%b in (!a!) do (
  6.                 echo %%b
  7.         )
  8. )
  9. pause
复制代码
你看这样行不行呢
发表于 2014-3-14 10:20:30 | 显示全部楼层
回复 15# terse


    是的。为何使用这句会有85个的限制?
 楼主| 发表于 2014-3-14 11:25:04 | 显示全部楼层
回复 18# 522235677


    空的,只有按任意键继续。DAIC的,sed和gawk不错,用第三方的也可以拉,
发表于 2014-3-14 11:29:24 | 显示全部楼层
回复 18# 522235677


逗号本身也可以作为分隔符,那个字符串替换是多余的。
  1. @echo off
  2. for %%i in (192.168.1.1,192.168.1.12) do (
  3.     echo %%i
  4. )
复制代码

评分

参与人数 1技术 +1 收起 理由
lky216 + 1 感谢分享

查看全部评分

发表于 2014-3-14 11:39:43 | 显示全部楼层
回复 20# lky216


    在我这都可以,找找你自己的问题
发表于 2014-3-14 11:40:16 | 显示全部楼层
回复 21# DAIC


    是哦,没想起,从来不用逗号来分割
发表于 2014-3-14 14:15:55 | 显示全部楼层
回复 13# terse


    这里用
echo %str:,=^

%
为何不行?
发表于 2014-3-14 15:43:59 | 显示全部楼层
回复 24# zhanglei1371
开启延迟变量  setlocal enabledelayedexpansion
  1. echo !str:,=^

  2. !
复制代码
发表于 2014-3-14 15:46:00 | 显示全部楼层
回复 16# lky216
我这里测试可以的 确定 “,”和“,” 的区别
发表于 2014-3-14 16:27:15 | 显示全部楼层
回复 24# zhanglei1371


    如果不开启变量延迟,有一种办法:
http://bathome.l3.wuyou.com/thread-20262-1-1.html
发表于 2014-3-14 16:39:31 | 显示全部楼层
回复 27# apang


    谢谢,可否解释下含义,看了长时间没看明白
发表于 2014-3-14 19:35:25 | 显示全部楼层
回复 28# zhanglei1371


    如果要从字串 ab 中间换行,分成两行显示,可以这样:
  1. @echo off
  2. echo,a^

  3. b
  4. pause
复制代码
如果把它用变量表示,就是这样:
  1. @echo off
  2. set NLM=^


  3. echo,a^%NLM%%NLM%b
  4. pause
复制代码
其中的 ^%NLM%%NLM% 代表的是换行,这是第一次转义。
如果再把^%NLM%%NLM%用一个变量表示,还需要再次转义,就成这样子了:
  1. @echo off
  2. set NLM=^


  3. set NL=^^^%NLM%%NLM%^%NLM%%NLM%
  4. echo,a%NL%b
  5. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
zhanglei1371 + 1 虽然还是不太理解。还是感谢阿胖大师讲解! ...

查看全部评分

发表于 2014-3-16 10:20:42 | 显示全部楼层
这个系列语句好像可以在《for语句入门到精通》中找到
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 01:05 , Processed in 0.034330 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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