20

Assume I have this structure:

d:/
  -- /alpha/
  -- /beta/
  -- /gamma/
  -- /delta/

I'm trying to execute a batch file that goes through those folders (but not through sub-folders within them).

How do I get this result using a FOR LOOP (assuming I don't know the name and quantity of the folders):

ren alpha alpha1
ren beta beta1
ren gamma gamma1
ren delta delta1
gunr2171
  • 16,104
  • 25
  • 61
  • 88
Abuda Dumiaty
  • 317
  • 1
  • 2
  • 10

1 Answers1

39

This is all you should need -- directly at the command prompt:

for /D %i in (*) do rename "%i" "%i1"

or in a batch file (note the doubled %):

for /D %%i in (*) do rename "%%i" "%%i1"

The /D performs the command against the directory names, as per the help, which can be obtained using the command for /?

If Command Extensions are enabled, the following additional forms of the FOR command are supported:

FOR /D %variable IN (set) DO command [command-parameters]

If set contains wildcards, then specifies to match against directory
names instead of file names.
T.J. Crowder
  • 1,031,962
  • 187
  • 1,923
  • 1,875
David Martin
  • 11,764
  • 1
  • 61
  • 74