首页 > 编程 > BAT > 正文

bat得到文件大小的代码

2020-06-09 14:23:49
字体:
来源:转载
供稿:网友
今天想复制一些文件,需要先判断文件的大小,小的肯定是有问题的不需要复制,经过大量测试终于找到了比较好的方法,需要的朋友可以参考下

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

复制代码 代码如下:

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表