原帖由 pusofalse 于 2008-8-3 18:40 发表
@echo off
for /f "delims=" %%. in (1.txt) do (
set "str=%%."
call,set "str=%%str:*a=%%"
for /f "delims=a" %%{ in ("%%.") do (
set "var=%%{"
call,echo.%%var:0=%%a%%str%% ...
%%{ %%.这样的非常少见,所以说怪异。
for /f "tokens=1-31" %%a in (a.txt) do echo %%a...%%z...
超过z之后要用{表示。
for中的变量顺序完全是由ASSCII码的大小来排列的。
for /f "tokens=1-3" %%" in (a.txt) do @echo %%"...
其后要用什么表示呢。
看下,"的十进制asscii为34,只需知道哪个是35,36 就可以输出第2-3列了。
十进制asscii对应35,36的分别是# $
但"是特殊字符,其前要加^转义。所以这个例子中,若全部输出1-3列,正确的应该是
复制内容到剪贴板代码:
for /f "tokens=1-3" %%^" in (a.txt) do @echo %%^" %%# %%$
对于版主同去对于这部分的解释,我也明白了,十分感谢。。。
不过我也产生了一个疑问,
@echo off
for /f "delims=" %%. in (1.txt) do (
set "str=%%."
call,set "str=%%str:*a=%%"
for /f "delims=a" %%{ in ("%%.") do (
set "var=%%{"
call,echo.%%var:0=%%a%%str%% ...
按照我的理解来说,这里的%%{ %%.跟%%a %%b并没有什么实质上的不同啊,那为什么要用在这里呢??