• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 596
  • Last Modified:

Help creating a .bat file to move thousands of files out of folders/sub folders into a different folder

Hi,

  I need some help in creating a .bat file to move thousands of files out of folders/sub folders into a different folder.

Here is my situation -  I have a folder structure similar to:  d:\test\folder_a\folder_b\ filled with thousands of files with the extension '.0'.  There won't be any additional file types other than those.  I want all of those files moved out of the folder/sub folders into d:\images.  I also want all of the sub directories to be deleted but to leave the root dir.  

I have seen a few .bat examples, but nothing I could find suited my needs.  I have included a few examples what I think might work, but needs some tweaking to be able to move all of the files from one folder to another instead of just back to the 'root' of the original directory.

Thanks!

Any help would be greatly appreciated!
@echo off
setlocal
 
set root=f:
set mask=*.*
 
for /F "tokens=*" %%G in ('dir "%root%\%mask%" /A:-D /B /S') do ECHO move "%%G" "%root%"
pause

________________________________________________________________________________________


@echo off
setlocal
 
set root=D:\GHOST
set mask=*.mp3
 
for /F "tokens=*" %%G in ('dir "%root%\%mask%" /A:-D /B /S') do ( 
ECHO move "%%G" "%root%"
move "%%G" "%root%" 
)
pause

________________________________________________________________________________________

@echo
setlocal enabledelayedexpansion
 
set root=d:\test
 
for /F "tokens=* usebackq" %%G in (`dir "%root%" /A:D /B`) do (
 for /F "tokens=* usebackq" %%H in (`dir "%root%\%%G" /A:-D /B /S`) do (
  echo N|move /-Y "%%H" "%root%"
 )
)
 
for /F "tokens=* usebackq" %%G in (`dir "%root%" /A:D /B`) do (
 set contents=
 for /F "tokens=* usebackq" %%H in (`dir "%root%\%%G" /A:-D /B /S 2^>NUL`) do (
  set contents=%%H
 )
 if not defined contents rd /q /s "%root%\%%G"

Open in new window

0
doc_jay
Asked:
doc_jay
1 Solution
 
Bill PrewCommented:
How about this?

@echo off
set BaseDir=d:\test
set DestDir=d:\images
for /F "tokens=*" %%A in ('dir /ad /s /b "%BaseDir%"^|sort /r') do (
  move "%%A\*.*" "%DestDir%"
  rd "%%A"
)

~bp
0
 
adallenCommented:
Why don't you just:

move d:\test\folder_a\folder_b\ d:\images\
0
 
Ben Personick (Previously QCubed)Lead Network EngineerCommented:
I think you only want the files, and not the directories, correct?

FOR /F %%F IN ('DIR A:D "C:\Folder_A" /B') DO Robocopy "C:\Folder_A\%%F" "D:\Images" *.0 /ZB /MOVE & Deltree "C:\Folder_A\%%F"

done and done.
0
Nothing ever in the clear!

This technical paper will help you implement VMware’s VM encryption as well as implement Veeam encryption which together will achieve the nothing ever in the clear goal. If a bad guy steals VMs, backups or traffic they get nothing.

 
doc_jayAuthor Commented:
very sorry, I guess I didn't make my situation exactly clear.  I have hundreds of folders with sub folders and they all don't have the same path of d:\test\folder_a\folder_b.  Each folder in the d:\test\ folder is actually a date, for example '20070621' for June 21 2007.  I just need the .bat file to look recursively through each folder inside d:\test.
0
 
doc_jayAuthor Commented:
Billprew --

   thanks for  your quick respone and the script worked, except at the end of the operation it came back with:  'the filename, directory name, or volume label syntax is incorrect.'   Anything to be concerned about it or just ignore it?

Thanks
0
 
Bill PrewCommented:
Do any of the folder or filenames have funny characters in them, like perhaps the ampersand?

~bp
0
 
doc_jayAuthor Commented:
nope, none of them do.
0
 
Bill PrewCommented:
Odd, that's typically what I have experienced with that message, but there may be other things that can cause it.

Did you run a real test, and did it move all files involved as desired, and remove all folders?  

Make sure you check before and after file counts, and that all folders were removed (which will only happen if they were empty).

You could also try running it with the ECHO OFF changed to ECHO ON to see where the error is caused.

~bp
0
 
doc_jayAuthor Commented:
Worked as expected - thanks!
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now