Es gibt mehrere Möglichkeiten, google wirft mich zu prüfen, ob eine Datei leer ist, aber ich muss das Gegenteil tun.Wie überprüft man, ob eine Datei im Batch nicht leer ist
If (file is NOT empty)
do things
Wie würde ich dies in Batch tun?
Es gibt mehrere Möglichkeiten, google wirft mich zu prüfen, ob eine Datei leer ist, aber ich muss das Gegenteil tun.Wie überprüft man, ob eine Datei im Batch nicht leer ist
If (file is NOT empty)
do things
Wie würde ich dies in Batch tun?
for /f %%i in ("file.txt") do set size=%%~zi
if %size% gtr 0 echo Not empty
set "filter=*.txt"
for %%A in (%filter%) do if %%~zA==0 echo."%%A" is empty
Typ help for
in einer Befehlszeile Erklärungen über den ~ zA Teil haben
dies funktionieren soll:
for %%R in (test.dat) do if not %%~zR lss 1 echo not empty
help if
sagt, dass Sie die NOT
direkt nach den if
hinzufügen zu invertieren die Vergleichserklärung
sollte nicht ein Schalter nach sein, wenn wie: für %% R in (test.dat) tun, wenn/i nicht %% ~ zR EQU 0 echo nicht leer – Christian4145
Sie können Subroutinen/externe Batch-Dateien nutzen, um nützliche parameter modifiers zu erhalten, die genau dieses Problem
@Echo OFF
(Call :notEmpty file.txt && (
Echo the file is not empty
)) || (
Echo the file is empty
)
::exit script, you can `goto :eof` if you prefer that
Exit /B
::subroutine
:notEmpty
If %~z1 EQU 0 (Exit /B 1) Else (Exit /B 0)
Alternativ
notEmpty.bat
@Echo OFF
If %~z1 EQU 0 (Exit /B 1) Else (Exit /B 0)
yourScript.bat lösen
Call notEmpty.bat file.txt
If %errorlevel% EQU 0 (
Echo the file is not empty
) Else (
Echo the file is empty
)
gibt zurück: >> unerwartet 0 – Tertium
@Tertium - Die Lösung besteht darin, 'set size = 0 'in die Zeile vor der' for'-Schleife einzufügen. –