Need Batch file to rename file based on file size

B

Brandon

I need to create a "simple" batch file that will not only rename a specified
file to the date it was renamed (example: batch.log to batch-080508.log) but
also based on the file size limit (example: if file size is less than 50MB,
please rename batch.log to batch-080508.log)

Thanks,
B.
 
P

Pegasus \(MVP\)

Brandon said:
I need to create a "simple" batch file that will not only rename a
specified
file to the date it was renamed (example: batch.log to batch-080508.log)
but
also based on the file size limit (example: if file size is less than
50MB,
please rename batch.log to batch-080508.log)

Thanks,
B.

Assuming that "batch-080508.log" means "batch-mm-dd-yy.log,
where is the coding for the size? What if the file is > 50 MBytes?
Less than 10 MBytes? What if a file of the same name already
exists? You need to be nail down these issues before you can
start writing a batch file.
 
B

Brandon

There wouldn't be a file of the same name if it has the format:
"batch-mm-dd-yy.log". I don't know what the coding would be for the size
which is why I posted the question. Basically, I would need the batch file
to rename the log file (ex: batch.log) to "batch-080508.log" (or batch +
<date of renaming>.log) once the file reaches 50MB in size. If you can tell
me the syntax for the file size and the date, I can write the batch unless
there's a better way of writing the batch file.

thanks,
b.
 
P

Pegasus \(MVP\)

This batch file will rename the specified file but only if its
size exceeds 50 kBytes:

01. @echo off
02. if "%*"=="" goto Error
03. if not exist "%*" goto Error
04.
05. set limit=50000
06. for /F %%a in ('echo %*') do if %%~za LSS %limit% goto error
07. for /F "tokens=2" %%a in ('echo %date%') do set MyDate=%%a
08. echo ren "%*" "batch-%MyDate:/=%.*
09. goto :eof
10.
11. :Error
12. echo.
13. echo No parameter given, or file does not exist,
14. echo or file size is less than 50 kBytes.

Invoke the batch file with the name of the file to-be-renamed
as a parameter. Do NOT surround the file name with double
quotes.

Remove the word "echo" in Line #08 to activate the batch file.
 
P

Pegasus \(MVP\)

c:\Windows\MyBatchFile.bat d:\My Files\SomeEvent.log

When you have a problem, don't just write "I must have
executed it wrong". Report how you ran it and what message(s)
you saw. Remember - I can't see your screen!
 
B

Brandon

You can't see my screen?? Just kidding! You're right, I'll try to
duplicate the process in detail for you and what I ran into.

I did get it to work using the syntax you provided. Thanks! Now, I need the
batch file (if possible) to stop a service, run the batch, then start the
service. Is this possible??

thanks again,
b.
 
P

Pegasus \(MVP\)

Yes, it's possible.
net stop "Name of Service"
net start "Name of Service"
 
B

Brandon

Is it as easy as putting the stop command within the batch file, and the
start command at the end??
 
P

Pegasus \(MVP\)

Yes, but why don't you give it a try? It will take less time than
asking here and waiting for answer!
 
B

Brandon

I DID try it, before I sent the last email, but it didn't work. Is there a
special way of entering it in the batch file then how you would type it on
the command line??
 
P

Pegasus \(MVP\)

No, it's the same. However, I suspect that you're running
your batch file from the Start/Run box. That's a bad idea -
it deprives you of any screen feedback you might get. Much
better to start a Command Prompt (Start / Run / cmd), then
running the batch file from there. Now you really see what's
going on!
 
B

Brandon

Actually, I was running it from the cmd prompt the entire time. I only tried
it once from the Start|Run prompt cuz the cmd prompt wasn't working.
 
P

Pegasus \(MVP\)

Here we go again: "Cuz the command prompt wasn't working".
Doesn't tell me anything, return to sender.
 
B

Brandon

That wasn't vague. I responded to your last email indicating that it would be
better to run from the cmd prompt. I indicated that I did try that the
entire time, BEFORE I tried the Start|Run prompt. Basically, it didn't work
from either prompt.
 
Joined
Jul 22, 2014
Messages
1
Reaction score
0
It's really easy to rename Batch rename files. I suggest to try KrojamSoft BatchRenameFiles program
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top