批处理中与for /f有关的一点小发现,与菜鸟一起分享
我是菜鸟,注册论坛才3天,昨天我在做for应用入门训练第三题“将 bbs bathome.net (在同一行)分成三行显示在批处理运行窗口” 时,偶然有了一个小发现,现在与广大菜鸟同志们一起分享
我做的是:
@echo off
for /f "tokens=1-3" %%i in (bbs bathome.net) do echo %%i %%j %%k
pause
运行结果是:系统找不到文件bbs
然后我把它改成:
@echo off
for /f "tokens=1-3" %%i in ("bbs bathome.net") do echo %%i %%j %%k
pause
结果就显示出来了。
这下我就纳闷了,怎么只多了个“”就出来了呢,于是我又查阅了关于for命令的教程(for语句从入门到精通),发现这句话“读取文本文件的内容,请使用 for /f 语句!”,这时我明白了,原来在第一个程序中的(bbs bathome.net)只是被当作文件名bbs,而不是一段文件的内容,所以运行结果是系统找不到文件bbs。而在第二个程序中("bbs bathome.net")是被当作一个文件的内容存在,所以显示了bbs bathome.net.
通过这次我发现基础细节是多么重要,表面上以为自己搞懂了,可一做起来总是会出点问题,不是这差点东西,就是那错点什么。如果不把基础细节抠好,那么将永远是个菜鸟(不好意思,只是有感而发,并没有教训人的意思)。
写到这我突然觉得自己的这点小发现确实不算什么,也就一个文件和文件名的区别,老鸟们看了肯定要笑。呵呵,
各位batman们,如果确实菜到和我一样,那就当是交流交流,如果是老鸟,那就当是娱乐娱乐吧。
[ 本帖最后由 p05401144 于 2009-1-10 15:31 编辑 ] |
-
1
评分人数
-