Solved

How to create a batch file that will rename a file when it reaches a certain size?

Posted on 2008-10-02
3
321 Views
Last Modified: 2010-05-18
I'd like to know how to create a batch file that will rename a particular file to the current date once it reaches a certain size limit.  For example, "logfile.log" reaches 50MB today, so it gets renamed to 10-2-08.log instead.

So far I've been working with the attached script that I found somewhere else, but every time I run it I get this message:
"No parameter given, or file does not exist, or file size is less than 50 MB" (Obviously that's the message I gave it, but why is it not working?)

Thanks to anyone who can help.



@echo off

if "%*"=="" goto Error

if not exist "%*" goto Error
 

set limit=75000

for /F %%a in ('echo %*') do if %%~za LSS %limit% goto error

for /F "tokens=2" %%a in ('echo %date%') do set MyDate=%%a

ren logfile.log "batch-%MyDate:/=%.*

goto :eof
 

:Error

echo.

echo No parameter given, or file does not exist,

echo or file size is less than 75 MBytes.

Open in new window

0
Comment
Question by:NJDfan1711
3 Comments
 
LVL 67

Accepted Solution

by:
sirbounty earned 125 total points
ID: 22627632
are you calling the batch file with the filename as an argument?

filename.bat c:\logfile.log

??
0
 
LVL 8

Expert Comment

by:Shmoid
ID: 22627861
The code is fine except for the size limit (see below)

Aside from that, there are three checks performed:
1. Did you specify the filename when invoking the batch file, if not goto error.
2. If you did specify the filename, does that filename exist, if not goto error.
3. If you specified the filename and it exists, is it larger than 75000, if not goto error.
So, if you didn't specifiy the name OR the filename does not exist OR the file is smaller than 75000 it will print the error statement.

Also, the limit in your batch file is in bytes and will rename the file if it is larger than 75K you need to change it to 75000000 (6 zeros not 3)
0
 
LVL 3

Author Closing Comment

by:NJDfan1711
ID: 31502522
Believe it or not, I was not doing that.  So simple... thanks for helping out a newbie!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

The following is a collection of cases for strange behaviour when using advanced techniques in DOS batch files. You should have some basic experience in batch "programming", as I'm assuming some knowledge and not further explain the basics. For some…
How to remove superseded packages in windows w60 or w61 installation media (.wim) or online system to prevent unnecessary space. w60 means Windows Vista or Windows Server 2008. w61 means Windows 7 or Windows Server 2008 R2. There are various …
This Micro Tutorial will teach you how to censor certain areas of your screen. The example in this video will show a little boy's face being blurred. This will be demonstrated using Adobe Premiere Pro CS6.
In this video I am going to show you how to back up and restore Office 365 mailboxes using CodeTwo Backup for Office 365. Learn more about the tool used in this video here: http://www.codetwo.com/backup-for-office-365/ (http://www.codetwo.com/ba…

920 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

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now