DOS字符串截取

今天处理一脚本时突然感觉被DOS恶心了,很郁闷为什么处理个字符串要这么麻烦,好吧我承认我不了解dos命令!

废话不多说了把总结贴出来:

截取字符串
echo 1:2 > test.txt
以:为分隔符 输出第一列
for /f "delims=:" %i in (test.txt) do echo %i

echo a:b:c > test.txt
以:为分隔符输出第2列
for /f "tokens=2 delims=:" %i in (test.txt) do echo %i
输出第一列和第三列分隔符是三个*
for /f "tokens=1,3 delims=:" %i in (test.txt) do echo %i***%j
将分隔符替换成-
for /f "tokens=1-3 delims=:" %i in (test.txt) do echo %i-%j-%k

echo a:b.c-d >test.txt
type test.txt
a:b.c-d
每列分隔符分别不同时
for /f "tokens=1-4 delims=:.-" %i in (test.txt) do echo %i %j %k %l

“For /f” 一句话总结:解析文本,读取字符串。

批处理脚本里需要加
@echo off
for /f XXXXX
pause > null

PS: 在Linux下这个问题可以很好的解决 awk and cut 等等简简单单的满足很多愿望,为毛DOS不做些类似的功能恩?

PPS:当然还有一个唯一算是好的就是dos 里的 find 和 findstr 命令 类似grep 但是只是类似 简单实现一下还好 复杂功能木有!

posted @ 2011-02-24 15:00  艾阳君  阅读(461)  评论(0编辑  收藏  举报