2012-06-27 22 views
10

Googleがファイルを空にしているかどうかを確認するために私がスローするいくつかの方法がありますが、その逆が必要です。ファイルが空でないかどうかを確認する方法

If (file is NOT empty) 

do things 

これをどのようにしてバッチで行いますか?これは動作するはずです〜ザ一部

答えて

18
for /f %%i in ("file.txt") do set size=%%~zi 
if %size% gtr 0 echo Not empty 
+0

返り値>>予期しない0 – Tertium

+0

@Tertium - 修正は、 'for'ループの前に' set size = 0'を追加することです。 –

2
set "filter=*.txt" 
for %%A in (%filter%) do if %%~zA==0 echo."%%A" is empty 

タイプhelp for

for %%R in (test.dat) do if not %%~zR lss 1 echo not empty 

help ifあなたが反転するようにif後に直接NOTを追加できることを言います比較ステートメント

7

についての説明を持っているために、コマンドラインで

+0

次のような場合は、スイッチを置いてはいけません:%% R for(test.dat)do/i not if /%i EQU 0 echo not empty – Christian4145

2

あなたはこの正確な問題

@Echo OFF 
If %~z1 EQU 0 (Exit /B 1) Else (Exit /B 0) 

yourScript.bat notEmpty.bat

@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) 

また

を解決するために有用parameter modifiersに到達するためにサブルーチン/外部バッチファイルを活用することができます

Call notEmpty.bat file.txt 
If %errorlevel% EQU 0 (
    Echo the file is not empty 
) Else (
    Echo the file is empty 
) 
関連する問題