Ok, my last post on this today....I think :) for /f "tokens=*" %i in ('dir * WORDS_TO_SEARCH * /s/ad/b') do robocopy /mir "%i" "DESTINATION_PATH\%~pni"
Adding the %~pni will prevent every copy from overwriting the previous. This will recreate your entire tree at the destination similar to Andrew's script below which may or may not be what you want. You can change it to \%~ni so that each source directory gets copied to the root of the destination, but any duplicates will overwrite each other so /mir may not be the best option. As far as paths that are too long, robocopy will handle paths up to 32,000 characters, but the dir command is the limiting factor here. In any case, you should be able to see the paths that don't get copied and do those manually, but the others should work. From: Crawford, Scott [mailto:crawfo...@evangel.edu] Sent: Wednesday, July 20, 2011 6:50 PM To: NT System Admin Issues Subject: RE: file searching and copying Nice to see pushd and popd making an appearance :) Few nits and questions, just to make sure I'm not missing something: 1. The echo in front of xcopy shouldn't be there. I'm sure it's just there for troubleshooting and left as an oversight. The /s /e is redundant, right? 2. I'm not very practiced with the enhanced ~ substitution, but couldn't the SET @DIR=%%~fpv line omit the p? 3. I think the ECHO DEST: %@DEST%\%%~pv line has an extra \ 4. I think the xcopy's destination parameter ("%@DEST%%%~pv") needs to be "%@DEST%%%~pnv". Without it, the files get copied into the corresponding parent on the destination. 5. Is there any way to get the parentheses code blocks work from the command line or do they need to be inside of a .bat? I've tried stringing the commands together with &&, but met with limited success. Possible drawback to this method: The destination path will contain the full path of the source. For instance, if the source root is C:\a\b\c and it contains a folder called Search_Term, and we wan't the destination to be D:\, when we run the script, the destination will contain D:\a\b\c\Search_Term, which may not be the goal. In the end, I don't think this is getting any better results the my original line. The 2>NUL is just hiding the failures. Thanks for the script though, it was fun to digest :) From: Andrew S. Baker [mailto:asbz...@gmail.com]<mailto:[mailto:asbz...@gmail.com]> Sent: Wednesday, July 20, 2011 3:06 PM To: NT System Admin Issues Subject: Re: file searching and copying How long are the paths? There are other ways to handle this, btw... Try the following snippet. It should handle long folders even if Windows complains about them @echo off SETLOCAL ENABLEDELAYEDEXPANSION SET @SOURCE=%SystemDrive% SET @DEST=D:\SomePlace SET @FIND=PrivacIE :Main for /f "tokens=*" %%v in ('dir /ad /b /s "%@SOURCE%\*.*<mailto:%25@SOURCE%25\*.*>" 2^>NUL ^| FIND /I "%@FIND%"') do ( SET @DIR=%%~fpv ECHO. ECHO SOURCE: !@DIR! ECHO DEST: %@DEST%\%%~pv PUSHD !@DIR! echo XCOPY *.* "%@DEST%%%~pv" /S /E /R /Y ECHO. POPD ) :ExitBatch ENDLOCAL ASB http://about.me/Andrew.S.Baker Harnessing the Advantages of Technology for the SMB market... On Wed, Jul 20, 2011 at 2:24 PM, Jeff Bunting <bunting.j...@gmail.com<mailto:bunting.j...@gmail.com>> wrote: Thanks all. Scott's suggestion is close and at least got me pointed in the right direction. Some of the paths are too long for DIR which throws a wrench in the works, so I'm going to have to rely on windows search for now. Powershell, unfortunately, currently isn't an option. Jeff On Wed, Jul 20, 2011 at 12:23 PM, Andrew S. Baker <asbz...@gmail.com<mailto:asbz...@gmail.com>> wrote: Good one, Scott. Jeff, remember to add a % to each variable if used in a batch file, vs the command line. ASB http://about.me/Andrew.S.Baker Harnessing the Advantages of Technology for the SMB market... On Wed, Jul 20, 2011 at 12:13 PM, Crawford, Scott <crawfo...@evangel.edu<mailto:crawfo...@evangel.edu>> wrote: For /f "tokens=*" %i in ('dir *WORDS_TO_SEARCH* /s/a/b/ad') do robocopy /mir "%i" DESTINATION_PATH This will search a folder tree for directorys. Change the dir command to eliminate the /s if you only want to search the root. From: Jeff Bunting [mailto:bunting.j...@gmail.com<mailto:bunting.j...@gmail.com>] Sent: Wednesday, July 20, 2011 11:01 AM To: NT System Admin Issues Subject: file searching and copying I'm attempting to search for particular words in a directory name (must use wildcards!), and, if found, copy the the directory tree while maintaining its structure to another directory. Are there any native tools (or reskit like robocopy) that can accomplish this somewhat easily? thanks, Jeff ~ Finally, powerful endpoint security that ISN'T a resource hog! ~ ~ <http://www.sunbeltsoftware.com/Business/VIPRE-Enterprise/> ~ --- To manage subscriptions click here: http://lyris.sunbelt-software.com/read/my_forums/ or send an email to listmana...@lyris.sunbeltsoftware.com<mailto:listmana...@lyris.sunbeltsoftware.com> with the body: unsubscribe ntsysadmin ~ Finally, powerful endpoint security that ISN'T a resource hog! ~ ~ <http://www.sunbeltsoftware.com/Business/VIPRE-Enterprise/> ~ --- To manage subscriptions click here: http://lyris.sunbelt-software.com/read/my_forums/ or send an email to listmana...@lyris.sunbeltsoftware.com<mailto:listmana...@lyris.sunbeltsoftware.com> with the body: unsubscribe ntsysadmin ~ Finally, powerful endpoint security that ISN'T a resource hog! ~ ~ <http://www.sunbeltsoftware.com/Business/VIPRE-Enterprise/> ~ --- To manage subscriptions click here: http://lyris.sunbelt-software.com/read/my_forums/ or send an email to listmana...@lyris.sunbeltsoftware.com<mailto:listmana...@lyris.sunbeltsoftware.com> with the body: unsubscribe ntsysadmin ~ Finally, powerful endpoint security that ISN'T a resource hog! ~ ~ <http://www.sunbeltsoftware.com/Business/VIPRE-Enterprise/> ~ --- To manage subscriptions click here: http://lyris.sunbelt-software.com/read/my_forums/ or send an email to listmana...@lyris.sunbeltsoftware.com<mailto:listmana...@lyris.sunbeltsoftware.com> with the body: unsubscribe ntsysadmin ~ Finally, powerful endpoint security that ISN'T a resource hog! ~ ~ <http://www.sunbeltsoftware.com/Business/VIPRE-Enterprise/> ~ --- To manage subscriptions click here: http://lyris.sunbelt-software.com/read/my_forums/ or send an email to listmana...@lyris.sunbeltsoftware.com with the body: unsubscribe ntsysadmin