Rename Script - File in folder gets same name as folder

Hi,

I need a script or a handy application that can help me with this.


I have 400 folders - all folders has the correct name - In every folder i got 1 file.

I want this file to get the same name as the folder its placed in.


Exampel

Foldername ;

"Stew - High"

The file inside should then be ;

"Stew - High" + extension.


Thank you in advice
HITCITAsked:
Who is Participating?
 
McKnifeConnect With a Mentor Commented:
Your screenshot shows you did not paste the line only, but you added more to it.
I looked at the folders, and of course blanks in folder names need to be taken care of, so open cmd and launch
for /f "delims=" %a in ('dir /b c:\users\jje\desktop\test') do ren c:\users\jje\desktop\test\"%a"\*.* "%a".*

Open in new window

0
 
McKnifeCommented:
Take his oneliner:
for /f %a in ('dir /b c:\test') do ren c:\test\%a\*.* %a.*

Open in new window

This assumes the 400 folders are below c:\test.
0
 
HITCITAuthor Commented:
Hmm.

Dosent work.

I get en error ;

"do was unexpected at this time."

Have created it like a CMD file.
0
Worried about phishing attacks?

90% of attacks start with a phish. It’s critical that IT admins and MSSPs have the right security in place to protect their end users from these phishing attacks. Check out our latest feature brief for tips and tricks to keep your employees off a hackers line!

 
McKnifeCommented:
open cmd.exe, and launch that code line.
0
 
HITCITAuthor Commented:
Well somthing is wrong :) - Sorry

Can you figure it out ?

Thank you
0
 
HITCITAuthor Commented:
Attached file
CMD.png
0
 
QlemoBatchelor, Developer and EE Topic AdvisorCommented:
Though that works, it is bad style (because it uses a bug's side effect). The double quotes should always enclose the whole path. It is always a good idea to make sure the FOR variable does not already contain the enclosing double quotes, too.
I would also make sure only folders are retrieved by the DIR.
for /f "delims=" %a in ('dir /b /a:d c:\users\jje\desktop\test') do ren "c:\users\jje\desktop\test\%~a\*.*" "%~a.*"

Open in new window

0
 
QlemoConnect With a Mentor Batchelor, Developer and EE Topic AdvisorCommented:
Just to compare, here the PowerShell (3+) line (doesn't matter if contained in a script or used at the prompt):
get-childitem 'c:\users\jje\desktop\test' -Directory | get-childitem -File | rename-item -NewName {$_.Directory.BaseName+$_.Extension}

Open in new window

Not really a difference.
1
 
HITCITAuthor Commented:
Thank you! It works.

I used Qlemo's powershell script!

I am a bit unsure who to give the point. McKnife gave the correct answer i think.
0
 
QlemoBatchelor, Developer and EE Topic AdvisorCommented:
Usually you accept the answer you used and/or are certain it works. However, you might accept both solutions and split the points, equally or not. Both solutions are worth the same IMHO.
0
 
McKnifeCommented:
Qlemo, I don't mind if you call it bad style. If there would be cases where it would lead to unwanted results, I would like to see those so I could learn from it. If there were files at the same level as the folders, it would not lead to unwanted results, nor would the variable already contain enclosing double quotes - if I don't see it, please help me with an example.

The points don't matter to me.
0
 
QlemoBatchelor, Developer and EE Topic AdvisorCommented:
Files in the root folder lead to an error message, if I'm correct (didn't test yet).

One reason for not to enclose parts of the path only in double quotes is that you then need to enclose each part individually...
0
 
HITCITAuthor Commented:
Thank you!

Points are splitted
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.