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

[文本处理] 批处理for命令提取字符串之后如何删掉双引号?

[复制链接]
发表于 2010-3-23 23:55:02 | 显示全部楼层 |阅读模式
用for提取txt中一行中的字符串147258(不含引号),

"RestartShell"="147258"

for /f "tokens=2 delims=""" %%i in ('find /i "147258" 1.txt') do echo %%i

无法执行,

用for /f "tokens=2 delims==" %%i in ('find /i "147258" 1.txt') do echo %%i

出来的是"147258",我不想要那个引号,要怎么办啊???
发表于 2010-3-24 08:50:56 | 显示全部楼层
for /f  "delims=""  %%i in  ('find /i "147258" 1.txt') do echo.%%i

最后显示的就是你要提取的,  这下知道自己错在哪了吧
发表于 2010-3-24 09:27:52 | 显示全部楼层
for命令是不允许使用双引号作为列分隔符的
  1. @echo off
  2. for /f "tokens=2 delims==" %%i in ('find /i "147258" 1.txt') do (
  3.     echo,%%~i
  4. )
复制代码

评分

参与人数 1PB +4 收起 理由
x9tiancmd + 4 学到小知识,大学问了,,谢谢, 然来delims不认 ...

查看全部评分

发表于 2010-3-24 13:03:56 | 显示全部楼层
原帖由 bat007 于 2010-3-24 09:27 发表
for命令是不允许使用双引号作为列分隔符的@echo off
for /f "tokens=2 delims==" %%i in ('find /i "147258" 1.txt') do (
    echo,%%~i
)


   试了下还真的,  受教了谢谢
发表于 2012-4-1 11:24:37 | 显示全部楼层
set "var2=123456"
如果是这样要提取等号后面的内容又怎么办了,并且等号后面的内容不是一定的,也就是会是别的内容,比如ASDFJ。
那么有没有办法把文本中的引号去掉了??
发表于 2012-4-1 13:38:42 | 显示全部楼层
回复 5# IbatI
  1. @echo off
  2. for /f "tokens=2 delims==" %%a in (a.txt) do (
  3.     set str=%%a
  4.     call echo %%str:~,-1%%
  5. )
复制代码
发表于 2012-4-1 13:52:20 | 显示全部楼层
回复 3# bat007


    http://bathome.net/thread-12395-1-2.html  六楼,分号可以做分隔符。
发表于 2012-4-1 23:24:50 | 显示全部楼层
回复 5# IbatI
  1. @echo off
  2. for /f "tokens=2 delims==" %%a in (a.txt) do (
  3.     for /f "delims=" %%b in (^""%%a") do echo %%~b
  4. )
复制代码
补一个前缀双引号再用 for 消除
发表于 2016-8-15 19:55:47 | 显示全部楼层
  1. for /f tokens^=^2^ delims^=^"^= %%i in (""RestartShell"="147258"") do echo %%i
  2. pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 06:44 , Processed in 0.034248 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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