2011-03-30 4 views
8

Windows .bat 파일에서 특정 파일이 비어 있는지 확인하고 싶습니다. 다음은 작동하지 않는 스크립트입니다.Windows BAT : 특정 파일이 비어 있는지 테스트하십시오.

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

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

제발 디버깅 해 주시겠습니까? 수식은 같은 paramters 작동으로,

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 

답변

7

를 또는 % ~ Z1을 가장 큰 차이점은 내가 함수 호출을 사용한다는 것입니다

@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 

그것을 시도하고 사용

+0

고마워, 그 작품! 나는 "set"명령에서 큰 따옴표 만 제거해야했지만 이것은 완벽했습니다. –

+0

공백이나 특수 문자가있는 경로/파일 이름에는 큰 따옴표가 필요합니다. – jeb

+1

공백은'set' 명령에 문제를 일으키지 않습니다. 파일 이름에서 합법적 인 모든 문자로부터'&'와'^'만이 문제를 일으킬 수 있다고 생각합니다. – Joey

0

이 시도 % 1 % 2 % .. 9 %% 유사한 용 루프 파라미터 ...는

+3

친구들이 술에 취해서 코드를 쓰게하지 마세요 :-) – paxdiablo

+0

이 언어는 무엇입니까? 이것은 간단한 Windows 명령 줄 (.bat)로 보이지 않습니다 ... –

+0

아니요, 저의 실수입니다. 그것의 vbscript, .vbs 파일을 만들고 붙여 넣을 수 있습니다. –

4

배치 파일과 비교하여 용액 :

type nul > blank 
fc myfile blank > nul 
if errorlevel 1 echo myfile is not empty 
관련 문제