Board logo

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

作者: jefferson108    时间: 2010-3-23 23:55     标题: 批处理for命令提取字符串之后如何删掉双引号?

用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",我不想要那个引号,要怎么办啊???
作者: x9tiancmd    时间: 2010-3-24 08:50

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

最后显示的就是你要提取的,  这下知道自己错在哪了吧
作者: bat007    时间: 2010-3-24 09:27

for命令是不允许使用双引号作为列分隔符的
  1. @echo off
  2. for /f "tokens=2 delims==" %%i in ('find /i "147258" 1.txt') do (
  3.     echo,%%~i
  4. )
复制代码

作者: x9tiancmd    时间: 2010-3-24 13:03

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


   试了下还真的,  受教了谢谢
作者: IbatI    时间: 2012-4-1 11:24

set "var2=123456"
如果是这样要提取等号后面的内容又怎么办了,并且等号后面的内容不是一定的,也就是会是别的内容,比如ASDFJ。
那么有没有办法把文本中的引号去掉了??
作者: find    时间: 2012-4-1 13:38

回复 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. )
复制代码

作者: QIAOXINGXING    时间: 2012-4-1 13:52

回复 3# bat007


    http://bathome.net/thread-12395-1-2.html  六楼,分号可以做分隔符。
作者: CrLf    时间: 2012-4-1 23:24

回复 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 消除
作者: pcl_test    时间: 2016-8-15 19:55

  1. for /f tokens^=^2^ delims^=^"^= %%i in (""RestartShell"="147258"") do echo %%i
  2. pause
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2