Batch file command to find and rename folders

See attached.  Need a couple of batch file commands:
1.  find and rename all folders found meeting the criteria
2.  a second batch command file to delete all occurences.
Better explained in attached.batch-help.doc
HFSCIAsked:
Who is Participating?
 
NVITConnect With a Mentor Commented:
For the delete portion, don't use the original post, which has the NUL. Instead, use this one:
@echo off
pushd c:\users
for /d %%a in (*.*) do (
  if exist "%%a\profile_backup\%%ahold" rd /s /q "%%a\profile_backup\%%ahold"
)
popd

Open in new window

0
 
NVITCommented:
To rename CUR to HOLD:
Note: Remove echo prefix to run for real.
@echo off

pushd c:\users

for /d %%a in (*.*) do (
  echo if exist "%%a\profile_backup\%acur\nul" ren "%%a\profile_backup\%%acur" "%%a\profile_backup\%aold"
)
popd

Open in new window


To delete HOLD:
Note: Remove echo prefix to run for real.
@echo off

pushd c:\users

for /d %%a in (*.*) do (
  echo if exist "%%a\profile_backup\%%ahold\nul" rd /s /q "%%a\profile_backup\%%ahold"
)
popd

Open in new window

0
 
HFSCIAuthor Commented:
Tried the below for the first part and it did not work:
ren the below is the drive of the user list
pushd E:\WWT\Home\FortMyers

for /d %%a in (*.*) do (if exist "%%a\profile_backup\%acur\nul" ren "%%a\profile_backup\%%acur" "%%a\profile_backup\%aold")
0
What Kind of Coding Program is Right for You?

There are many ways to learn to code these days. From coding bootcamps like Flatiron School to online courses to totally free beginner resources. The best way to learn to code depends on many factors, but the most important one is you. See what course is best for you.

 
NVITCommented:
Can you post the ECHO method results similar to how I had it?
0
 
HFSCIAuthor Commented:
The results are attached.  I only have two setup with cur to test renaming them so as not to effect all of them.
batch-results.docx
0
 
NVITCommented:
My bad. For the first part, %a should be %%a:
echo if exist "%%a\profile_backup\%%acur\nul" ren "%%a\profile_backup\%%acur" "%%a\profile_backup\%%aold"

Open in new window

0
 
HFSCIAuthor Commented:
sorry but still didn't change the folder.  See attached for info
batch-result2.docx
0
 
NVITCommented:
First, please change \NULL to \NUL:

Other than that, it seems to be working. The ECHO is for debugging purposes and provides  visual confirmation only. To run it for real, remove the ECHO prefix as I mentioned originally.
0
 
HFSCIAuthor Commented:
sorry but still did not change maleyecur folder to maleyeold folder.  See attached
batch-result3.docx
0
 
NVITCommented:
Are you getting errors?
Please post the ECHO results
0
 
HFSCIAuthor Commented:
no errors shown the results are the same as shown in batchresult2 attachment
0
 
NVITCommented:
You need to remove the ECHO to run it for real, i.e. rename the folders:
echo if exist "%%a\profile_backup\%%acur\nul" ren "%%a\profile_backup\%%acur" "%%a\profile_backup\%%aold"

Open in new window

becomes...

if exist "%%a\profile_backup\%%acur\nul" ren "%%a\profile_backup\%%acur" "%%a\profile_backup\%%aold"

Open in new window

0
 
HFSCIAuthor Commented:
Below is my batch and it still did not rename the folder and there were no erros and attached the cmd window.  I manually went to the folder in the cmd window and renamed it from cur to old so know its not a permissions issue.


rem the below is the drive of the user list
pushd E:\WWT\Home\FortMyers

for /d %%a in (*.*) do (if exist "%%a\profile_backup\%%acur\nul" ren "%%a\profile_backup\%%acur" "%%a\profile_backup\%%aold")

pause
batch-result4.docx
0
 
NVITCommented:
My apologies. I was ahead of myself. Try this:
for /d %%A in (*.*) do (
      if exist "%%A\profile_backup\%%Acur" (
            pushd "%%A\profile_backup"
            ren %%Acur %%Aold
            popd
      )
)
0
 
HFSCIAuthor Commented:
sorry but where do I put that in the existing batch file?
0
 
NVITCommented:
Here's the whole thing:
@echo off

pushd c:\users

for /d %%A in (*.*) do (
  if exist "%%A\profile_backup\%%Acur" (
    pushd "%%A\profile_backup"
    ren %%Acur %%Aold
    popd
  )
)
popd

Open in new window

0
 
HFSCIAuthor Commented:
see attached as it gives path error
batch-result5.docx
0
 
NVITCommented:
Are you running the commands inside the FOR loop on one line? Don't you want to use what I gave you?
0
 
NVITCommented:
Here's a simpler one:
@echo off
pushd c:\users
for /d %%A in (*.*) do (
  if exist "%%A\profile_backup\%%Acur" ren "%%A\profile_backup\%%Acur" %%Aold
)
popd

Open in new window

0
 
HFSCIAuthor Commented:
Sorry, I am confused on what you are asking.  The last attachment shows you the batch file I used which I thought was using the FOR loop.  The result picture was just showing the btch run and I only have 2 folders that actually meet the criteria usernamecur and that's only for testing purposes.  they all will eventually have a cur folder.  So the batch_result5 attachment above shows it going thru each folder but when it does find a usernamecur it errors about the path.
0
 
NVITCommented:
Please run the last post.
0
 
HFSCIAuthor Commented:
no errors but did not rename.  see attached
batch-result6.docx
0
 
NVITCommented:
My last post doesn't have the NUL
0
 
HFSCIAuthor Commented:
Great News it worked.  You are my new Hero.  I will try the delete portion tomorrow and let you know
0
 
HFSCIAuthor Commented:
Just wanted to say thanks for all your help and patience.  Will now accept your solution
0
 
HFSCIAuthor Commented:
Exceptional help and patience.  Expert explained the process which also helped in understanding the solution
0
 
NVITCommented:
Hi HFSCI...
Thanks for the quick update. I'm glad it eventually worked for you. Thanks for your patience, too!
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.