Board logo

标题: [文本处理] 求个批处理,如何比较某个文件大小之后选择文件执行? [打印本页]

作者: dantawangzi    时间: 2009-4-7 08:43     标题: 求个批处理,如何比较某个文件大小之后选择文件执行?

这样的批处理怎么实现呢?
在同一个文件夹下面,有3个文件,a.doc,b.mp3,c.mp3,启动批处理之后,如果a.doc的大小小于2M的话,就运行b.mp3,如果a.doc的大小大于2M的话,批处理命令就运行c.mp3文件。谢谢哪位大侠的帮助,感激涕零!!
作者: Batcher    时间: 2009-4-7 12:37

你的问题大致可以分解成以下几个小模块:
1、获取某个文件的大小
2、选择执行
请问具体哪个模块你不会?或者全部不会,只能等待别人给出完整代码?
发帖求助时,建议在帖子中描述清楚以下几点(有则改之无则加勉):

1、你的具体系统环境、应用程序环境是什么?你需要处理的数据长啥模样?

2、你为了解决自己的问题做出了哪些尝试?在google/baidu搜索了没?在本论坛搜索了没?阅读批处理基础教程了没?查阅系统自带的命令行帮助了没?

3、如果你曾经自己尝试着写过代码,但没能解决问题,请把你的完整代码贴出来,也许别人能够给你指出是什么地方出了问题,这样才更加有利于自己的进步。

Q: 如何使用论坛搜索功能来解决自己的问题?
A: 参考:http://bbs.bathome.net/thread-3473-1-1.html
作者: Lumiere    时间: 2009-4-7 15:22

  1. @echo off
  2. for /f "tokens=3" %%a in ('dir /a a.doc^|findstr "a.doc"') do (
  3.            setlocal enabledelayedexpansion
  4.            set x=%%a
  5.            set size=!x:,=!
  6.            if !size! lss 2048 (start b.mp3) else (start c.mp3)
  7.            endlocal  
  8. )
  9. pause
复制代码

如果你在桌面右下角时间显示那里前面加了自己的名字或者其他的字符串的话,tokens后面的3改成4就好。

[ 本帖最后由 Lumiere 于 2009-4-7 15:23 编辑 ]
作者: 随风    时间: 2009-4-7 15:33

  1. @echo off
  2. for %%a in (a.doc) do (
  3.   if %%~za lss 2048 (start b.mp3) else start c.mp3
  4. )
  5. pause
复制代码

作者: Lumiere    时间: 2009-4-7 15:46

呵呵,超级版主太帅了,简直和nicolas cage 本人一样帅!哎,功夫还不到家啊,对for的命令还不是完全熟悉,走了弯路,哎,继续学习……




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2