Windows 检查批处理脚本中的文件大小
我试图找到一个文件的大小,如果它大于0,我想做一些事情。 我有以下代码:Windows 检查批处理脚本中的文件大小,windows,batch-file,filesize,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 ) 但是,在运行脚本时,我收到以
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”文件~zA
C:\AnalyzerCheck>
如何修复此错误
编辑:
新错误:此命令:
FOR /F "usebackq" %A IN ('%file%') DO set size=%~zA
有两个错误:您不能使用/F选项(“useback”选项),因为您不想读取文件内容,而只想处理文件名。此外,如果此命令位于批处理文件中,则a可替换参数必须有两个百分号:
FOR %%A IN (%file%) DO set size=%%~zA
在脚本中, 此命令:
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
或此命令:
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
或此命令:
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
我建议使用(“%file%”)而不是(%file%),以防文件名有空格。您对我的FOR命令失败,因为我的文件名有空格。添加引号可以使其与带有空格的文件名匹配。