Windows BAT: проверить, если конкретный файл пуст - PullRequest
8 голосов
/ 30 марта 2011

Я хотел бы проверить, является ли конкретный файл пустым в файле Windows .bat.Вот мой неработающий скрипт:

set dir="C:\test"
set file="%dir%\fff.txt"

cd %dir%
if %file%%~zi == 0 exit
ftp -s:"%dir%\ftp.action"
exit

Не могли бы вы помочь мне отладить это, пожалуйста?

Ответы [ 3 ]

7 голосов
/ 30 марта 2011

Или попробуйте с помощью

@echo off
set "dir=C:\temp"
set "file=%dir%\a.txt"

call :CheckEmpty "%file%"
goto :eof

:CheckEmpty
if %~z1 == 0 exit
ftp -s:"%dir%\ftp.action"
goto :eof

Основное отличие состоит в том, что я использую вызов функции и использую% ~ z1, поскольку модификаторы работают только для параметров, таких как% 1,% 2 ..% 9или параметры цикла for, такие как %% a ...

4 голосов
/ 14 августа 2012

пакетное решение с использованием сравнения файлов:

type nul > blank
fc myfile blank > nul
if errorlevel 1 echo myfile is not empty
0 голосов
/ 30 марта 2011

Попробуйте это:

    Const ForReading = 1

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile("c:\boot.ini", ForReading)


    Dim arrFileLines()
    i = 0
    Do Until objFile.AtEndOfStream
      Redim Preserve arrFileLines(i)
      arrFileLines(i) = objFile.ReadLine
      i = i + 1
    Loop
    objFile.Close
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...