Batch file to copy files from desktop location to another location

batch filewindows

I want to Copy/Move files in Windows XP from Desktop(a Folder) to My Document(another Folder), which was created by same Batch File on Current Date in Format DD/MM/YYYY.

This is working fine when .BAT File is in Desktop Folder.

@echo off
set date="%date:~7,2%-%date:~4,2%-%date:~10,4%"
mkdir %date%
copy *.txt \%date%
pause

Now what this .BAT is doing is, creating Folder 18-01-2013 on Desktop and coping all .TXT files in this Folder.

But this is not working,

@echo off
set date="%date:~7,2%-%date:~4,2%-%date:~10,4%"
mkdir %USERPROFILE%\My Documents\%date%
copy %USERPROFILE%\desktop\*.txt %USERPROFILE%\My Documents\%date%
pause

This .BAT File is creating these folders;

  1. In C Drive>Documents
  2. On Desktop (and, Chandel>My, Documents>18-01-2013, Settings>Anshuman)

Any help in this regard is highly appreciated!

Best Answer

You need to place double-quotes (") around your paths that contain, or may contain, spaces or other special characters. To be safe, I always quote all paths in scripts, just in case. Also, you want to remove the quotes from around the variable values that will later be components in other paths. So, remove the quotes from the set date line and add them to the next two lines.

So your script should be:

@echo off
set date=%date:~7,2%-%date:~4,2%-%date:~10,4%
mkdir "%USERPROFILE%\My Documents\%date%"
copy "%USERPROFILE%\desktop\*.txt" "%USERPROFILE%\My Documents\%date%"
pause
Related Question