CMD - jak sprawdzić czy plik nie jest pusty

Witam

 

Mam problem z poleceniem “if exist” przy wyszukiwaniu zawartości pliku .txt. chcę sprawdzić czy plik jest pusty lub nie.

 

@echo off
setlocal enabledelayedexpansion

for /f “tokens=1” %%A in (“test.txt”) do (
    if not exist %%A (
    echo Pusty
    ) else (
    echo Nie pusty
    )
)
timeout 5

 

Problem w tym, że z jakiegoś powodu polecenie if exist nie potrafi przeanalizować tokena %%A z pliku tekstowego. Czy trzeba tu jeszcze użyć jakiegoś dodatkowego przełącznika.? Jest to dziwne bo w przypadku np. wyszukiwania pliku czy innego obiektu poleceni if exist działa bez zarzutu. Problem pojawia się, gdy chce wyszukać zawartość pliku .txt.

 

http://stackoverflow.com/questions/11225581/how-to-check-if-a-file-is-not-empty-in-batch

Zależy mi na tym, żeby przeszukiwało zawartość pliku. Znalazłem coś takiego, ale nie do końca rozumiem czemu to działa :slight_smile:

 

(for /f %%a in (“test.txt”) do break) && echo has data || echo empty