bat得到文件大小的代码

所属分类: 脚本专栏 / DOS/BAT 阅读数: 834
收藏 0 赞 0 分享
今天想复制一些文件,需要先判断文件的大小,小的肯定是有问题的不需要复制,经过大量测试终于找到了比较好的方法,需要的朋友可以参考下

先来点简单的一句话代码:

复制代码 代码如下:

for /f %i in ('dir /b c:\450010.jpg') do echo %~zi

完整的判断代码:

复制代码 代码如下:

@echo off
::每5分钟复制以下首页
for /f %%i in ('dir /b c:\index2.htm') do (
set indexdx=%%~zi
)
if %indexdx% gtr 5120 (
echo y | xcopy c:\index2.htm /d /r /k c:\index.htm
)
pause

dos下判断文件大小

纯dos下恐怕不行,视窗下bat还马马虎虎,当c:\1.txt大于3.999G失效。大约20秒检查一次。

复制代码 代码如下:

@echo off&setlocal Enabledelayedexpansion
set R=c:\1.txt
:1
ping -n 20 127.0 >nul
for /f "tokens=1-3 delims= " %%a in ('dir "%R%"^|find /i "1 个文件"') do (
set Q=%%c
set /a Q=!Q:,=!
if !Q! lss 2048start "" "1.exe"
)
goto 1

Dos脚本判断文件大小

复制代码 代码如下:

@echo off & setlocal EnableDelayedExpansion
del 1.txt /q 
del 2.txt /q
for %%i in (*) do (echo %%~fzi >>1.txt)                                              rem 将文件大小存储到1.txt

for /f "tokens=1* delims= " %%a in (1.txt) do (
    set "zer=%%a"
    set "pat=%%b"
    if !zer! gtr 5120 (
        if not "!pat:~0,-1!"=="%~0" echo "!pat:~0,-1!"& echo "!pat!" >> 2.txt        rem 将大于5KB的文件名称放到2.txt中
    )
)
echo "done."

【备注】if常用的判断语句

  1、if exist d:\test.txt (echo D盘下有test.txt存在) else (echo D盘下不存在test.txt)
  2、if "abc"=="xyz" (echo 字符串abc等于字符串xyz) else (echo 字符串abc不等于字符串xyz)
  3、if 1 equ 2 (echo 1等于2) else (echo 1不等于2)
  4、if defined str (echo 变量str已经被赋值,其值为%str%) else (echo 变量str的值为空)

中文含义      关系符      英文解释

等于           equ       equal
大于           gtr        greater than
大于或等于      geq       greater than or equal
小于           lss         less than
小于或等于      leq         less than or equal
不等于          neq       no equal

部分内容来自:http://www.cnblogs.com/cnpirate

更多精彩内容其他人还在看

DOS 命令字典

DOS 命令字典
收藏 0 赞 0 分享

用replace实现替换正在使用的文件

用replace实现替换正在使用的文件
收藏 0 赞 0 分享

黑客基础之DOS (最齐全)超强推荐

黑客基础之DOS (最齐全)超强推荐
收藏 0 赞 0 分享

bat运行时不弹出那个黑框框的完美解决方案

bat运行时不弹出那个黑框框的完美解决方案
收藏 0 赞 0 分享

收藏的比较完整的批处理教程第1/2页

收藏的比较完整的批处理教程
收藏 0 赞 0 分享

批处理版的SC

批处理版的SC
收藏 0 赞 0 分享

BAT文件语法和技巧(bat文件的编写及使用)

批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件
收藏 0 赞 0 分享

用 Net 命令使局域网文件批量同步更新

用 Net 命令使局域网文件批量同步更新
收藏 0 赞 0 分享

如何用DOS命令删除顽固文件夹啊

如何用DOS命令删除顽固文件夹啊
收藏 0 赞 0 分享

dos下删除文件夹和文件的方法

dos下删除文件夹和文件的方法
收藏 0 赞 0 分享
查看更多