Solved

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

Posted on 2008-10-02
3
336 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
[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
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

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

You may have already been in the need to update a whole folder stucture using a script. Robocopy does it well and even provides a list of non-updated files in a log (if asked to). Generally those files that were locked by a user or a process by the …
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 …
Monitoring a network: why having a policy is the best policy? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the enormous benefits of having a policy-based approach when monitoring medium and large networks. Software utilized in this v…
Michael from AdRem Software outlines event notifications and Automatic Corrective Actions in network monitoring. Automatic Corrective Actions are scripts, which can automatically run upon discovery of a certain undesirable condition in your network.…
Suggested Courses

630 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