检查批处理脚本中的文件大小

时间:2011-10-24 19:41:27

标签: windows batch-file filesize

我试图找到一个文件的大小,如果它大于0,我想做一些事情。 我有这段代码:

set file="C:\AnalyzerCheck\loaded.txt"
set minbytesize=0
if exist %file% (
FOR /F "usebackq" %A IN ('%file%') DO set size=%~zA
if %size% GTR %minbytesize% (
    //do stuff
) else (
    //do stuff
)

但是,当我运行脚本时,我得到了这个输出/错误:

  

C:\ AnalyzerCheck> set file = C:\ AnalyzerCheck \ loaded.txt

     

C:\ AnalyzerCheck> set minbytesize = 0

     

file~zA出乎意料   时间。

     

C:\ AnalyzerCheck> FOR / F“usebackq”file~zA

     

C:\ AnalyzerCheck>

如何解决此错误?

编辑:

新错误:

3 个答案:

答案 0 :(得分:5)

此命令:

FOR /F "usebackq" %A IN ('%file%') DO set size=%~zA

有两个错误:您不能使用/ F选项(既不是“useback”选项),因为您不想读取文件CONTENTS,而只是处理文件NAME。此外,如果此命令位于批处理文件中,则A可替换参数必须具有两个百分号:

FOR %%A IN (%file%) DO set size=%%~zA

答案 1 :(得分:0)

在脚本中,此命令:

    for /f %%A in ("myfile.txt") do set size=%%~zA

或者这个命令:

    set "filename=myfile.txt"
    for %%A in (%filename%) do echo.Size of "%%A" is %%~zA bytes

或者这个命令:

    set "filename=myfile.txt"
    for /f %%A in (%filename%) do set size=%%~zA

答案 2 :(得分:-1)

@echo off
cd C:\MyFolder\
set file="MyFile.txt"

set maxbytesize=0

FOR /F "usebackq" %%A IN ('%file%') DO set size=%%~zA

if %size% GTR %maxbytesize% (
    //do stuff
) ELSE (
    //do stuff
)