无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3284|回复: 3
打印 上一主题 下一主题

批处理for如何以引号为分割符切分呢?

[复制链接]
跳转到指定楼层
1#
发表于 2012-6-17 12:10:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人是批处理初学者,碰到一问题,苦思不得其解。
比如有一个文本1.txt,内容为:

  1. gh fg"hyvvv lk"ah k89 " hj_"
复制代码

我知道for的delims选项默认以空格切分,但我想以引号“"”作为切分符,我是这样写的:
  1. @echo off
  2. for /f "tokens=1-4 delims=^"" %%I in (1.txt) do (
  3. echo %%I
  4. echo %%J
  5. echo %%K
  6. echo %%L
  7. )
  8.   
  9. pause >nul
  10. exit
复制代码

运行出错:命令语法不正确。折腾好几天了,还望大大们予以解惑。谢谢了!
2#
 楼主| 发表于 2012-6-17 19:57:49 | 只看该作者

回复 #2 pznpt 的帖子

我按照帖子介绍的方法,改为for /f tokens^=1-4^ delims^=^" %%I in (1.txt) do (
确实可行。但始终不明白为什么,越看越糊涂。。。
太深奥了,能否通俗讲解一下?
回复

使用道具 举报

3#
发表于 2012-6-20 08:43:08 | 只看该作者
楼主不赞成我的“废话”
算我多事。。。
回复

使用道具 举报

4#
发表于 2012-6-20 11:03:28 | 只看该作者

标题

原帖由 2012h 于 2012-6-17 19:57 发表
我按照帖子介绍的方法,改为for /f tokens^=1-4^ delims^=^" %%I in (1.txt) do (
确实可行。但始终不明白为什么,越看越糊涂。。。
太深奥了,能否通俗讲解一下?

双引号内的符号可以不用转义符转义!
     去掉了双引号对,用转义符代替了双引号自动转义的功能。
   批处理中双引号对里面的转义符是无法转义双引号的,因为批处理会认为你转议的那个双引号是和前面的双引号批配! 因为你写的代码有三个双引号,按双方引号批配规则最后一个双引号会自动舍弃造成语法错误!^_^
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-12-1 02:52

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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