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

Reply via email to