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

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

本帖最后由 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
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

感谢楼上两位

TOP

bat 中的 break 命令是无作用的,是从 DOS 时代遗留下来的,在现在的 cmd 中已经只是个“保留名”了,以下摘自 break /?
这个命令是为了与 DOS 系统的兼容而保留的,在 Windows 里不起作用。
1

评分人数

TOP

临时过渡
  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

评分人数

TOP

返回列表