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

[文本处理] 批处理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",我不想要那个引号,要怎么办啊???

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

最后显示的就是你要提取的,  这下知道自己错在哪了吧
    ╭╩═╮
╭╯G O ╠ 雁过留声
╰⊙═⊙╯

TOP

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

评分人数

    • x9tiancmd: 学到小知识,大学问了,,谢谢, 然来delims不认 ...PB + 4

TOP

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


   试了下还真的,  受教了谢谢
    ╭╩═╮
╭╯G O ╠ 雁过留声
╰⊙═⊙╯

TOP

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

TOP

回复 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. )
复制代码
早中晚各问自己一遍:你平均每周帮助别人解决几个问题?

TOP

回复 3# bat007


    http://bathome.net/thread-12395-1-2.html  六楼,分号可以做分隔符。

TOP

回复 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 消除

TOP

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

TOP

返回列表