makino
makino

Reputation: 53

how to copy files from one directory to other in batch command

I wish to copy a file with extension .dyn which is located in each subfolder of main folder(T15_finished). I wish to copy it into respective subfolder at other location(T15). I have created that location using xcopy command. Here, .dyn file is being copied successfully in respective subfolder in T15 folder(see below code). Now, I have a file which has extension as .dynain which is located in the same subfolder as .dyn. And .dynain file is also getting copied which i don't want. Please see following code which i have created. Can anyone tell me whats wrong ?

@echo off

xcopy D:\Master\SPRINGBACK\CPW\T15_finished  D:\Master\SPRINGBACK\FRESH_SPRINGBACK\CPW\T15 /t
xcopy /e D:\Master\SPRINGBACK\CPW\T15_finished\*.dyn D:\Master\SPRINGBACK\FRESH_SPRINGBACK\CPW\T15

pause

Upvotes: 2

Views: 180

Answers (2)

MC ND
MC ND

Reputation: 70923

Short file names. If you do a dir /x in the folder containing the .dynain file, you will see the 8.3 filename generated for the file, and it will have .dyn extension.

If you know the extensions of the conflicting files, you can use robocopy with /xf switch to indicate the files (*.dynain) to exclude, or you can generate a exclude file to use with xcopy /exclude:file (see xcopy /? for a explanation)

Or, you can generate the list of files to exclude

(for /f "tokens=" %%a in (
    'dir /s /b "D:\Master\SPRINGBACK\CPW\T15_finished\*.dyn" ^| findstr /v /i /e /l ".dyn"'
) do @echo(%%~nxa)>excludedFiles.txt

xcopy /exclude:excludedFiles.txt /e D:\Master\SPRINGBACK\CPW\T15_finished\*.dyn D:\Master\SPRINGBACK\FRESH_SPRINGBACK\CPW\T15

Or (as posted by foxidrive), copy all and then delete the non needed files.

Upvotes: 2

foxidrive
foxidrive

Reputation: 41234

The short filename is being matched as well as the long filename. That is the reason.

A solution is to use another command to delete the files:

del /s "D:\Master\SPRINGBACK\FRESH_SPRINGBACK\CPW\T15\*.dynain"

Upvotes: 1

Related Questions