Solved

How to detect zero byte files in Windows

Posted on 2011-09-29
6
1,041 Views
Last Modified: 2012-05-12
I need a method (vb script / batch file) to detect a zero byte text file with in a folder.  We using both XP and Windows 2003 machines to recieve many text files via ftp.  After the files are recieved they are processed by a mapping program.  When a zero byte file is processes by the mapping program the program fails.  

I need a script / batch file to detect the zero byte text files and then delete them.
0
Comment
Question by:epmmis
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
6 Comments
 
LVL 66

Accepted Solution

by:
johnb6767 earned 125 total points
ID: 36818149
dir C:\Folder\test.bmp | find " 1 File(s)              0 bytes" && echo File is ZERO Bytes......

Simply returns "File is ZERO Bytes......"

Or set a variable etc.....

Keep the spacing as is... I'm sure there is a more graceful method than this batch...........


0
 
LVL 16

Assisted Solution

by:AlexPace
AlexPace earned 125 total points
ID: 36818208
Another option is to use a scriptable FTP server.  For example, if you used Robo-FTP Server you write a short script that is triggered by the UploadComplete event.  The script would check the size of the uploaded file and delete it if the length is 0 bytes.
0
 
LVL 65

Assisted Solution

by:RobSampson
RobSampson earned 125 total points
ID: 36818485
This would work in VBScript.

Regards,

Rob

strFolder = "C:\Files"
Set objFSO = CreateObject("Scripting.FileSystemObject")
For Each objFile In objFSO.GetFolder(strFolder).Files
   If objFile.Size = 0 Then objFile.Delete True
Next

Open in new window

0
Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

 
LVL 66

Expert Comment

by:johnb6767
ID: 36818543
Yeah, prettier indeed...
0
 
LVL 16

Assisted Solution

by:sjklein42
sjklein42 earned 125 total points
ID: 36818906
This DOS command scans the current folder for zero-length files and deletes them.

for %i in (*) do @if "%~zi"=="0" del "%i"

Open in new window


Note that if you use this in a batch file, you need to double-up the percent signs.
0
 

Author Closing Comment

by:epmmis
ID: 36912464
Thank AlexPace. We do use RoboFTP as our FTP client.  RoboFTP tech support provided this solution.

Are these zero byte files downloaded from a remote site or do they come from somewhere else?  If they come from the site then maybe it would be easier to use FTPGETFILE or GETSITEFILE to set the value of the %sitefilesize variable and then only download the files with more than 0 bytes.  If the files have a local or unknown source you could add a little loop at the bottom of your script that uses GETNEXTFILE to set the %nextfilesize variable and then get rid of the zero byte files.
If you use these commands in a loop that deletes or renames files you'll need to use GETREWIND or FTPGETREWIND after deleting or renaming a file.  This starts the loop over at the top so it is inefficient but shouln't cause any preceptable delay unless the folders you are processing contain hundreds of files.  The reason this is necessary is that, internally, these command keep track of which file they are processing by noting its ordinal position within the directory listing.  Deleting or renaming files changes the order of the directory listing so the command gets confused if, for example, the file that WAS the 3rd file is now the 4th file.
Here is an example of using GETFILE in a loop to delete local 0 byte files:
GETREWIND
:fetch_file_stats
GETFILE "*"
IFERROR= $ERROR_NO_FILE_FOUND GOTO no_more_files
IFNUM> %nextfilesize 0 GOTO fetch_file_stats
DELETE %nextfile
GETREWIND
GOTO fetch_file_stats
:no_more_files

The rest of the answers were good too.  So you all get points for the exceptional answers.
0

Featured Post

Edgartown IT Case Study

Learn about Edgartown's quest to ensure the safety and security of the entire town's employee and citizen data. Read the case study!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
USB KEYBOARD AND MOUSE FAILS AFTER WIN-XP LOADS 18 129
Time server on domain 3 60
Cross checking component service dlls 2 36
Updates for XP? 26 89
This article is the result of a quest to better understand Task Scheduler 2.0 and all the newer objects available in vbscript in this version over  the limited options we had scripting in Task Scheduler 1.0.  As I started my journey of knowledge I f…
When you start your Windows 10 PC and got an "Operating system not found" error or just saw  "Auto repair for startup" or a blinking cursor with black screen. A loop for Auto repair will start but fix nothing.  You will be panic as there are no back…
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

738 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question