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

[文本处理] [已解决]使用for /f引号分隔提取字符输出结果不正确

[复制链接]
发表于 2013-6-30 01:27:01 | 显示全部楼层 |阅读模式
本帖最后由 pZjVa0 于 2013-6-30 08:38 编辑

我今晚测试了一晚还是无法理解为什么这段代码为什么最后的输出结果是文本中的第一行而不是第二行
(for /f skip^=1^ tokens^=2^ delims^=^" %%a in (CDImage.cue) do set a=%%a&&break)
echo %a%

但是改成下面goto的代码结果就正常,除了goto的代码之外还有其他办法可以实现我的想法吗?谢谢各位
(for /f skip^=1^ tokens^=2^ delims^=^" %%a in (CDImage.cue) do set a=%%i&&goto:a)
:a
echo 内容是:%a%
pause

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2013-6-30 02:42:05 | 显示全部楼层
临时过渡
  1. @echo off
  2. more +1 e.txt>$.t
  3. set/pa=<$.t
  4. for /f tokens^=2^ delims^=^" %%a in ("%a%") do set a=%%a
  5. del $.t
  6. echo %a%
  7. pause
复制代码
判断定义

  1. set a=
  2. (for /f skip^=1^ tokens^=2^ delims^=^" %%a in (e.txt) do if not defined a set a=%%a)
  3. echo 内容是:%a%
  4. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2013-6-30 03:03:40 | 显示全部楼层
bat 中的 break 命令是无作用的,是从 DOS 时代遗留下来的,在现在的 cmd 中已经只是个“保留名”了,以下摘自 break /?
这个命令是为了与 DOS 系统的兼容而保留的,在 Windows 里不起作用。

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2013-6-30 08:38:57 | 显示全部楼层
感谢楼上两位
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 15:14 , Processed in 0.020273 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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