中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 文件读取,文件大小取得,批处理函数定义!
作者:
标题: 文件读取,文件大小取得,批处理函数定义! 上一主题 | 下一主题
maomaoguai
初级用户





积分 26
发帖 10
注册 2007-6-11
状态 离线
『楼 主』:  文件读取,文件大小取得,批处理函数定义!

1.xls,9.pdf,133.xls,22.xls,44.xls,55.xls 77.xls
99.xls


OK.TXT
我想循读取里边的内容,有;,空格,或换行分开的,读取的内容是文件名,然后判断文件是否存在,怎么做,谢谢!

[ Last edited by maomaoguai on 2007-6-11 at 10:26 PM ]

2007-6-11 11:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  


@echo off
for /f "delims=" %%a in (OK.TXT) do (
    for %%a in (%%a) do if exist "%%a" (echo %%a exist) else (echo %%a not exist)
)
pause


2007-6-11 13:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chenjide
初级用户





积分 28
发帖 13
注册 2007-1-27
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by lxmxn at 2007-6-11 01:10 PM:
@echo off
for /f "delims=" %%a in (OK.TXT) do (
    for %%a in (%%a) do if exist "%%a" (echo %%a exist) else (echo %%a not exist)
)
pause

for 看不懂,看来我还要继续努力啊~

2007-6-11 13:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zasxcdfv
初级用户





积分 152
发帖 75
注册 2007-2-6
状态 离线
『第 4 楼』:  

第三行的%%a换个标识是不是更容易看懂呢?
@echo off
for /f "delims=" %%a in (OK.TXT) do (
    for %%x in (%%a) do if exist "%%x" (echo %%x exist) else (echo %%x not exist)
)
pause

原来for中的(set)还可以这样用,受教了~

2007-6-11 13:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 5 楼』:  

理解错误了,呵呵

[ Last edited by wudixin96 on 2007-6-12 at 05:25 PM ]

2007-6-11 17:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zasxcdfv
初级用户





积分 152
发帖 75
注册 2007-2-6
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by wudixin96 at 2007-6-11 05:48 PM:



楼主说是以分号、空格为分隔的。
for %%a in (%%a) do if exist "%%a" (echo %%a exist) else (echo %%a not exist)
这里是以空格、跳格分隔的。

可以实现的,空格、逗号,叹号等都可以作为分隔符。

2007-6-11 17:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 7 楼』:  

呵呵。偶是说
for %%a in (%%a) do if exist "%%a" (echo %%a exist) else (echo %%a not exist)
理解错误了,呵呵

[ Last edited by wudixin96 on 2007-6-12 at 05:27 PM ]

2007-6-11 17:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by wudixin96 at 2007-6-11 17:58:
呵呵。偶是说
for %%a in (%%a) do if exist "%%a" (echo %%a exist) else (echo %%a not exist)
这句只是实现以空格和跳格为分隔,没有把分号作为分隔符

这句似乎还可以以分号(;)和逗号(,)为分隔符。

2007-6-11 18:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 9 楼』:  

偶XP下。测试。只能是空格和跳格的。难道偶电脑问题??

2007-6-11 18:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 10 楼』:  


~ver

Microsoft Windows XP [版本 5.1.2600]

~type o.bat
@echo off
for %%a in (a;b,c d     e) do echo\%%a
~o.bat
a
b
c
d
e

~


2007-6-11 18:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 11 楼』:  

不知何解了。偶这怎么测试都是不过。^~^

2007-6-11 18:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复
maomaoguai
初级用户





积分 26
发帖 10
注册 2007-6-11
状态 离线
『第 12 楼』:  函数定义,文件大小取得

谢谢,我的也可以能过,比较神呀!
for %%a in (%%a) do if exist "%%a" (echo %%a exist) else (echo %%a not exist)

这句是怎么出来的.

另还想请教三个问题:
1.我想实现函数定义:
:XX
语句
GOTO :EOF
但是我用call 调用一次,该部分还要顺次执行一次.
2.批处理的中止语句有吗,比如一个if判断出错,我就中止后面程序部分的执行,还是只有用标号跳转
3.现像上面那样,我取得了文件名,现在我想根据文件名,取得相应文件的大小(以byte,或kb为单位),并写到另一文件中,请问这个怎么实现
谢谢!

[ Last edited by maomaoguai on 2007-6-11 at 10:22 PM ]

2007-6-11 21:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 13 楼』:  

1、在标签前面加一个跳转语句跳到标签后面或者别的地方;

2、推荐用跳转语句跳到别的地方去执行另外的语句;

3、%%~za 可以扩展到文件大小,echo %%a---%%~za >>file 。

2007-6-11 23:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
maomaoguai
初级用户





积分 26
发帖 10
注册 2007-6-11
状态 离线
『第 14 楼』:  

我想取得文件名前缀,但如下方法取不行,请指教!好像%%xi可以直接取扩展名,前缀能直接取吗。
for /F "delims=" %%i in (file.list) do (
    for %%i in (%%i) do (
        set FILENAME = %%i
        set PRE_NAME = %FILENAME:~0,-4%
        echo "T",% PRE_NAME % >> file.result
    )
)

2007-6-12 15:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 15 楼』:  

%~fI        - 将 %I 扩充到一个完全合格的路径名
%~dI        - 仅将 %I 扩充到一个驱动器号
%~pI        - 仅将 %I 扩充到一个路径
%~nI        - 仅将 %I 扩充到一个文件名
%~xI        - 仅将 %I 扩充到一个文件扩展名
%~sI        - 扩充的路径只含有短名
%~aI        - 将 %I 扩充到文件的文件属性
%~tI        - 将 %I 扩充到文件的日期/时间
%~zI        - 将 %I 扩充到文件的大小

2007-6-12 16:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: