-1

I am trying to create a batch file that copies files from one folder to a new one that it creates, (mkdir "new folder") and renames the folder 1. If folder 1 already exists then name it folder 2. This would loop by adding 1 to the folder name until that folder did not exist and then copy the files to that folder.

Here is my code so far, I have searched the site for some direction, but am not finding anything specifically doing this. Any help would be much appreciated.

The areas I need help with are set in the program with :: comments

@ECHO OFF
cd c:\
set a=1
mkdir C:\"New folder"
ren "C:\New folder" "%a%"

:: if the folder already exists then

set /a "a=%a%+1"
ren "C:\New folder" "%a%"

:: I need this to loop till the folder does not already exist and then can be renamed.
:: Then I need to files located in "c:\folder_to_copy" to copy into the newly named folder

robocopy "c:\folder_to_copy" "c:\%a%"
Compo
  • 36,585
  • 5
  • 27
  • 39
tomthegr8
  • 3
  • 1

1 Answers1

1

That's quite easy:

set i=0
:loop
set /a i+=1
md "%i%" 2>nul || goto :loop
echo created %i%

|| works as "if previous command failed (could not create the folder) then"

PS: make sure there is write permission - else this turns into an endless loop (not able to create folders)

or adapted to your use-case: check if the folder exists until you hit one that doesn't:

set i=0
:loop
set /a i+=1
if exist "%i%\" goto :loop
ren "c:\new folder" "%i%"
aschipfl
  • 33,626
  • 12
  • 54
  • 99
Stephan
  • 53,940
  • 10
  • 58
  • 91