Home > Software design >  Create folder structure and copy file inside without specific path
Create folder structure and copy file inside without specific path

Time:12-29

I'm new to the site and tried to search for an answer a couple of days and found similar situations as mine, but not entirely the same and apologise in advance if there is an answer already somewhere.

I've created a batch script to make a small folder structure to organise my photos, and so far so good, it's working as expected here the code

    @echo off

MD 1.Capture
MD 1.Capture\Selected
MD 1.Capture\Discard

MD 2.Projects
MD 3.Masters
MD 4.Web
MD 5.Instagram

Now the part I'm struggling with is copying the same file in each folder and subfolder.

The actual file will always be the same and is in a specific path that never changes, but I'd like to have the code to copy that file in the folders without specifying the folder's path, and instead make the folders and put the file inside no matter where the structure is, the reason why is that I will place the script in different places all the time and having to correct the path all the time will make the code useless to me. Is that possible?

And thanks in advance.

CodePudding user response:

It wasn't absolutely clear to me which directories you wanted the source file, in this case C:\Users\Giovani\Pictures\Portrait.jpg, to be copied to, So I'm offering two complete options, where the final directories will be placed along side the batch file itself.

The first will copy to each 'new' directory, including 1.Capture:

@Echo Off
For %%G In (
    "1.Capture"
    "1.Capture\Selected"
    "1.Capture\Discard"
    "2.Projects"
    "3.Masters"
    "4.Web"
    "5.Instagram"
) Do %SystemRoot%\System32\xcopy.exe "C:\Users\Giovani\Pictures\Portrait.jpg" "%~dp0%%~G\" /CHIKQRY 1>NUL

The second will do the same, creating the 1.Capture directory, but not copying to it:

@Echo Off
SetLocal EnableExtensions
For %%G In (
    "1.Capture\Selected"
    "1.Capture\Discard"
    "2.Projects"
    "3.Masters"
    "4.Web"
    "5.Instagram"
) Do %SystemRoot%\System32\xcopy.exe "C:\Users\Giovani\Pictures\Portrait.jpg" "%~dp0%%~G\" /CHIKQRY 1>NUL
  • Related