![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-25 10:09 |
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,274 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 文件读取,文件大小取得,批处理函数定义! |
| 可打印版本 1,215 / 14 |
| 第1楼 maomaoguai | 发表于 2007-06-11 11:47 |
| 初级用户 发帖 10 积分 26 | |
|
文件读取,文件大小取得,批处理函数定义! 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 ] |
|
| 第2楼 lxmxn | 发表于 2007-06-11 13:10 |
| 版主 发帖 4,938 积分 11,386 | |
| 第3楼 chenjide | 发表于 2007-06-11 13:12 |
| 初级用户 发帖 13 积分 28 | |
Originally posted by lxmxn at 2007-6-11 01:10 PM: for 看不懂,看来我还要继续努力啊~ |
|
| 第4楼 zasxcdfv | 发表于 2007-06-11 13:39 |
| 初级用户 发帖 75 积分 152 | |
|
第三行的%%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)还可以这样用,受教了~ |
|
| 第5楼 wudixin96 | 发表于 2007-06-11 17:48 |
| 银牌会员 发帖 931 积分 1,928 | |
|
理解错误了,呵呵
[ Last edited by wudixin96 on 2007-6-12 at 05:25 PM ] |
|
| 第6楼 zasxcdfv | 发表于 2007-06-11 17:51 |
| 初级用户 发帖 75 积分 152 | |
Originally posted by wudixin96 at 2007-6-11 05:48 PM: 可以实现的,空格、逗号,叹号等都可以作为分隔符。 |
|
| 第7楼 wudixin96 | 发表于 2007-06-11 17:58 |
| 银牌会员 发帖 931 积分 1,928 | |
|
呵呵。偶是说
理解错误了,呵呵 [ Last edited by wudixin96 on 2007-6-12 at 05:27 PM ] |
|
| 第8楼 lxmxn | 发表于 2007-06-11 18:22 |
| 版主 发帖 4,938 积分 11,386 | |
Originally posted by wudixin96 at 2007-6-11 17:58: 这句似乎还可以以分号(;)和逗号(,)为分隔符。 |
|
| 第9楼 wudixin96 | 发表于 2007-06-11 18:31 |
| 银牌会员 发帖 931 积分 1,928 | |
|
偶XP下。测试。只能是空格和跳格的。难道偶电脑问题??
|
|
| 第10楼 lxmxn | 发表于 2007-06-11 18:41 |
| 版主 发帖 4,938 积分 11,386 | |
|
|
| 第11楼 wudixin96 | 发表于 2007-06-11 18:43 |
| 银牌会员 发帖 931 积分 1,928 | |
|
不知何解了。偶这怎么测试都是不过。^~^
|
|
| 第12楼 maomaoguai | 发表于 2007-06-11 21:33 |
| 初级用户 发帖 10 积分 26 | |
|
函数定义,文件大小取得 谢谢,我的也可以能过,比较神呀!
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 ] |
|
| 第13楼 lxmxn | 发表于 2007-06-11 23:27 |
| 版主 发帖 4,938 积分 11,386 | |
|
1、在标签前面加一个跳转语句跳到标签后面或者别的地方;
2、推荐用跳转语句跳到别的地方去执行另外的语句; 3、%%~za 可以扩展到文件大小,echo %%a---%%~za >>file 。 |
|
| 第14楼 maomaoguai | 发表于 2007-06-12 15:04 |
| 初级用户 发帖 10 积分 26 | |
|
我想取得文件名前缀,但如下方法取不行,请指教!好像%%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 ) ) |
|
| 第15楼 wudixin96 | 发表于 2007-06-12 16:18 |
| 银牌会员 发帖 931 积分 1,928 | |
|
%~fI - 将 %I 扩充到一个完全合格的路径名
%~dI - 仅将 %I 扩充到一个驱动器号 %~pI - 仅将 %I 扩充到一个路径 %~nI - 仅将 %I 扩充到一个文件名 %~xI - 仅将 %I 扩充到一个文件扩展名 %~sI - 扩充的路径只含有短名 %~aI - 将 %I 扩充到文件的文件属性 %~tI - 将 %I 扩充到文件的日期/时间 %~zI - 将 %I 扩充到文件的大小 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |