Проверка размера файла в пакетном скрипте - PullRequest
1 голос
/ 24 октября 2011

Я пытаюсь найти размер файла, и если он больше 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> установить файл = C: \ AnalyzerCheck \loaded.txt

C: \ AnalyzerCheck> set minbytesize = 0

file ~ zA был неожиданным в этом время.

C: \ AnalyzerCheck> FOR / F "usebackq" файл ~ zA

C: \ AnalyzerCheck>

Как мне исправить эту ошибку?

Edit:

Новая ошибка:

Ответы [ 3 ]

5 голосов
/ 25 октября 2011

Эта команда:

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

имеет две ошибки: Вы не должны использовать параметр / F (ни параметр «useback»), потому что вы хотите не читать файл СОДЕРЖАНИЕ, а просто обработать файл ИМЯ. Кроме того, если эта команда находится внутри пакетного файла, заменяемый параметр A должен иметь два знака процента:

FOR %%A IN (%file%) DO set size=%%~zA
0 голосов
/ 23 января 2015
@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
)
0 голосов
/ 26 июня 2013

В пределах скипа,

Эта команда:

    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
...