Question Locked

DOS Rename Question

0 helpful
8 replies
Closed to new repliesThis discussion is closed. It stays readable, but it takes no new replies.

I am trying to create a batch file that renames a file and moves it.

When I use the rename function - it does the following

shippingConfirmation.txt

rename shippingConfirmation* shipped*

Result:

shippedgConfirmation.txt

How do I change this so I get:

Shipped.txt

Thanks

8 replies

by jhallstrom

Would that work for this?

rename shippingConfirmation.* shipped.*

Result:

shippedgConfirmation_06302010.txt

How do I change this so I get:

Shipped_06302010.txt

Thanks

by Member 25348569

If you want to rename shippingconfirmation_06302010.txt to shipped_06302010.txt then you do:

ren *_06302010.txt Shipped_06302010.txt

If you'd have asked for that the first time, I'd have given you the answer you wanted first time.

Now, if that's STILL not right, tell me EXACTLY what you want to start with and finish with.

:)

by seanferd

ren shippingConfirmation*.* shipped*.*
would be what you are trying to do, but it won't work. (And I still have no idea why you are using a wildcard for the file extension.

besides,
rename shippingConfirmation.* shipped.*
results in
shipped.txt

It happens because everything after "shipped" is appended by the wilcard rules. That's what shipped* will get you. You have to tell applications exactly what you want, they aren't going to make common sense pattern matching decisions, which require human intelligence.

by seanferd

ren /?
In general, commandname /?

And look up the use of wildcards on windows systems, because that is where your problem is.

ren shippingconfirmation.txt shipped.txt

Don't use wildcards if they could rename more than one file, but I'll guess from your example that you want

ren shippingconfirmation.* shipped.txt

If you don't specify the extension, windows is not going to guess for you. It will just do something weird or fail entirely.

No point in using wildcards in your situation, really. What is it saving you from typing a 3 character extension once? And as I said, you could end up renaming things you don't want renamed, as well as losing files entirely.

Like if you had
shippingconfirmation01.txt
shippingconfirmation02.txt
shippingconfirmation03.txt
shippingconfirmation01.csv

and you do

ren shippingconfirmation* shipped.txt

Guess what is going to happen? (You will be prompted for confirmation, giving you the chance to back out. But other commands which allow use of the y switch, and if used, will just let you blow stuff away with no confirmation.

Now, after all that, I'll make another suggestion and say that if you are going to REName then Move a file, you may as well learn to use Xcopy, because that is more flexible, and will let you use the /Y switch so you don't have to confirm. But then you have to DELete the original file.

xcopy C:\dir1\dir2\on order\shippingconfirmation.txt C:\dir1\dir2\fulfilled\shipped.txt

del C:\dir1\dir2\on order\shippingconfirmation.txt

If the CMD prompt is running in the original directory where shippingconfirmation.txt lives (In my example, C:\dir1\dir2\on order\shippingconfirmation.txt), then you don't need to use the full directory path to that file, just the path to the new file in the directory to which it is being moved.

Suit yourself, do it either way, whichever works best for you. You can find a full list of available commands in Help, or at the MS website, and many other places. Every command has help as well, so you can learn how to use it and any available switches it has.

Don't forget to look up wildcards (* and ?) for further usage tips that may suit your needs.

by jhallstrom

Thank you for the information. Our programmers have added one more wrinkle to this change.

It is now shippingconfirmation_20100702114521.txt

and it needs to be renamed to

shipped.20100702114521.txt

by seanferd

take care of you automated thingy here with something other than a batch file.

If you are still going to use a batch file, the same rules still apply.

ren shippingconfirmation_20100702114521.txt shipped.20100702114521.txt

or

ren *_20100702114521.txt shipped.20100702114521.txt

This discussion is closed to new replies.