我试图找到一个文件的大小,如果它大于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>
如何解决此错误?
编辑:
新错误:
答案 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
)