标题: [文本处理] [已解决]批处理怎么去截取某一字符的后面的字符串呢? [打印本页]
作者: zfkzp 时间: 2011-7-19 21:25 标题: [已解决]批处理怎么去截取某一字符的后面的字符串呢?
已知有F:\i love bathome\text.txt如下文本- .ssa=xmp.ssa
- .ssf=SogouSkinFile
- .sso=SogouExtensionFile
- .sst=CertificateStoreFile
- .sta=Photoshop.STAFile.12
- .ste=Dreamweaver.Site.Definition
- .e=
复制代码
想截取等号后面的东西?试过用for来写:- @echo off&setlocal enabledelayedexpansion
- set FF=F:\i love bathome\text.txt
- for /f "tokens=1 delims=(," %%i in ('type "%FF%"^|findstr /i "="') do (set dim=%%~i)
- echo %dim%
- pause>nul
- exit /b
复制代码
可是截取出来的却不是我想要的,请大侠指点。
作者: CrLf 时间: 2011-7-19 21:48
本帖最后由 CrLf 于 2011-7-19 22:47 编辑
可以用 delims 直接截取- @echo off
- set FF=F:\i love bathome\text.txt
- for /f "useback tokens=1* delims==" %%i in ("%ff%") do if "%%j" neq "" echo;%%j
- pause>nul
复制代码
作者: asd821089612 时间: 2011-7-19 22:07
想得简单一点就OK了嘛 用FOR 用得简单一点- @echo off
- cd /d F:\i love bathome\
- for /f "delims== tokens=1,*" do (echo %%j>a.txt)
- pause>nul
复制代码
你要的东西在a.txt 里面
作者: zfkzp 时间: 2011-7-19 22:14
3# asd821089612
会一闪而过,不知道是怎么回事。但愿您自己可以正常使用。
作者: zfkzp 时间: 2011-7-19 22:18
2# CrLf
谢谢了先,还有不过有其他问题,就是最后那个会显示“echo处于关闭状态。”
还有,set可不可以用变量赋值给另一个变量呢?
比如复制代码
不知道可不可以?
其他都可以。
作者: CUer 时间: 2011-7-19 22:20
- @echo off
- for /f "usebackq tokens=2 delims==" %%i in ("F:\i love bathome\text.txt") do (
- echo,%%i
- )
- pause
复制代码
作者: CUer 时间: 2011-7-19 22:22
5# zfkzp - @echo off
- set b=hello
- set a=%b%
- echo,%a%
- pause
复制代码
作者: zfkzp 时间: 2011-7-19 22:27
7# CUer
这样啊……嗯,我知道了。难怪我定义的变量会出问题。
作者: CUer 时间: 2011-7-19 22:32
- gawk -F= "{print $2}" a.txt
复制代码
作者: zfkzp 时间: 2011-7-19 22:35
6# CUer
那么如果%%i用到其他地方去的话,最后那个就可能会出问题的,比如:- REG COPY \\ZODIAC\HKLM\Software\MyCo HKLM\"%%1"\MyCo1
复制代码
如果%%i为空的话的话,我猜肯定会出问题的。
作者: CUer 时间: 2011-7-19 22:37
10# zfkzp
可以像2楼版主那样判断一下变量是否为空
作者: CUer 时间: 2011-7-19 22:37
复制代码
作者: zfkzp 时间: 2011-7-19 22:41
11# CUer
那样就不会有事了……我试过了,可以的。谢谢了哈。
作者: 1130342432 时间: 2011-7-20 02:56
@echo off
setlocal enabledelayedexpansion
for /f "delims=^= tokens=2" %%i in (test.txt) do echo %%i
pause
作者: cjiabing 时间: 2011-7-20 09:40
3# asd821089612
DO前面少一个输入变量和集合,请检查。
作者: Hello123World 时间: 2011-7-23 14:00
- @echo off&SetLocal EnableDelayedExpansion
- For /f "usebackq tokens=2 delims==" %%i in ("1.txt") do Echo %%i
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |