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

[文本处理] [已解决]批处理怎么去截取某一字符的后面的字符串呢?

[复制链接]
发表于 2011-7-19 21:25:09 | 显示全部楼层 |阅读模式
已知有F:\i love bathome\text.txt如下文本
  1. .ssa=xmp.ssa
  2. .ssf=SogouSkinFile
  3. .sso=SogouExtensionFile
  4. .sst=CertificateStoreFile
  5. .sta=Photoshop.STAFile.12
  6. .ste=Dreamweaver.Site.Definition
  7. .e=
复制代码
想截取等号后面的东西?试过用for来写:
  1. @echo off&setlocal enabledelayedexpansion
  2. set FF=F:\i love bathome\text.txt
  3. for /f "tokens=1 delims=(," %%i in ('type "%FF%"^|findstr /i "="') do (set dim=%%~i)
  4. echo %dim%
  5. pause>nul
  6. exit /b
复制代码
可是截取出来的却不是我想要的,请大侠指点。

评分

参与人数 1PB +2 收起 理由
CrLf + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-7-19 21:48:04 | 显示全部楼层
本帖最后由 CrLf 于 2011-7-19 22:47 编辑

可以用 delims 直接截取
  1. @echo off
  2. set FF=F:\i love bathome\text.txt
  3. for /f "useback tokens=1* delims==" %%i in ("%ff%") do if "%%j" neq "" echo;%%j
  4. pause>nul
复制代码
发表于 2011-7-19 22:07:54 | 显示全部楼层
想得简单一点就OK了嘛   用FOR 用得简单一点
  1. @echo off
  2. cd /d F:\i love bathome\
  3. for /f "delims== tokens=1,*" do (echo %%j>a.txt)
  4. pause>nul
复制代码
你要的东西在a.txt 里面
 楼主| 发表于 2011-7-19 22:14:45 | 显示全部楼层
3# asd821089612

会一闪而过,不知道是怎么回事。但愿您自己可以正常使用。
 楼主| 发表于 2011-7-19 22:18:56 | 显示全部楼层
2# CrLf


谢谢了先,还有不过有其他问题,就是最后那个会显示“echo处于关闭状态。”
还有,set可不可以用变量赋值给另一个变量呢?
比如
  1. set %a%=%b%
复制代码
不知道可不可以?
其他都可以。
发表于 2011-7-19 22:20:38 | 显示全部楼层
  1. @echo off
  2. for /f "usebackq tokens=2 delims==" %%i in ("F:\i love bathome\text.txt") do (
  3.     echo,%%i
  4. )
  5. pause
复制代码

评分

参与人数 2技术 +2 收起 理由
Hello123World + 1 乐于助人
CrLf + 1 乐于助人

查看全部评分

发表于 2011-7-19 22:22:48 | 显示全部楼层
5# zfkzp
  1. @echo off
  2. set b=hello
  3. set a=%b%
  4. echo,%a%
  5. pause
复制代码
 楼主| 发表于 2011-7-19 22:27:39 | 显示全部楼层
7# CUer


这样啊……嗯,我知道了。难怪我定义的变量会出问题。
发表于 2011-7-19 22:32:37 | 显示全部楼层
  1. gawk -F= "{print $2}" a.txt
复制代码
 楼主| 发表于 2011-7-19 22:35:04 | 显示全部楼层
6# CUer


那么如果%%i用到其他地方去的话,最后那个就可能会出问题的,比如:
  1. REG COPY \\ZODIAC\HKLM\Software\MyCo HKLM"%%1"\MyCo1
复制代码
如果%%i为空的话的话,我猜肯定会出问题的。
发表于 2011-7-19 22:37:10 | 显示全部楼层
10# zfkzp


可以像2楼版主那样判断一下变量是否为空
发表于 2011-7-19 22:37:49 | 显示全部楼层
  1. sed "s/.*=//" a.txt
复制代码
 楼主| 发表于 2011-7-19 22:41:28 | 显示全部楼层
11# CUer

那样就不会有事了……我试过了,可以的。谢谢了哈。
发表于 2011-7-20 02:56:14 | 显示全部楼层
@echo off
setlocal enabledelayedexpansion
for /f "delims=^=  tokens=2" %%i in (test.txt) do echo %%i
pause

评分

参与人数 1PB -1 收起 理由
CrLf -1 虽是助人为乐,但也别忘了用code哦

查看全部评分

发表于 2011-7-20 09:40:23 | 显示全部楼层
3# asd821089612


DO前面少一个输入变量和集合,请检查。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 22:32 , Processed in 0.012229 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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