I don't know if I'm hitting the right group, if not can somebody tell me
which group to post in.


I need to use Eseutil utility from Microsoft Exchange sever to copy a large
folder(120 gig).
Eseutil does not accept * character, therefore I need to use it in a " for
.... in" DOS command.

the root folder to copy from contains subfolders and files and the subfolder
too contains subfolders and files. (each subfolder contains multi level of
subfolders and files with different extensions)


I need to use something as the following :

myRootFolder> for /R %I in (.) do for /D %K in ("%I") do mkdir %K
for /F %G in (dir %K /A:-D /B) do Eseutil /Y \\server1\c$\%G
/D\\server2\d$\%G

the command above is not correct. But what I'm trying is:
1- loop into each folder
2- get the folder name and create an empty similar one on the target(has the
same name)
3- fetch all the files under this folder
4- use Eseutil to copy the files one by one

thanks for help

Re: For .... in loop by Big

Big
Wed May 14 14:38:49 PDT 2008

zino wrote:
> I don't know if I'm hitting the right group, if not can somebody tell me
> which group to post in.
>
>
> I need to use Eseutil utility from Microsoft Exchange sever to copy a large
> folder(120 gig).
> Eseutil does not accept * character, therefore I need to use it in a " for
> .... in" DOS command.
>
> the root folder to copy from contains subfolders and files and the subfolder
> too contains subfolders and files. (each subfolder contains multi level of
> subfolders and files with different extensions)
>
>
> I need to use something as the following :
>
> myRootFolder> for /R %I in (.) do for /D %K in ("%I") do mkdir %K
> for /F %G in (dir %K /A:-D /B) do Eseutil /Y \\server1\c$\%G
> /D\\server2\d$\%G
>
> the command above is not correct. But what I'm trying is:
> 1- loop into each folder
> 2- get the folder name and create an empty similar one on the target(has the
> same name)
> 3- fetch all the files under this folder
> 4- use Eseutil to copy the files one by one
>
> thanks for help
for %a in (*.*) do dir %a

. is not a valid filename, I know what . is, but every recursive
directory has no 'files' that match . So *.* works better. Or I
would guess it does.

Re: For .... in loop by Pegasus

Pegasus
Wed May 14 14:35:12 PDT 2008


"zino" <zino@noemail.noemail> wrote in message
news:41472F5E-0264-45DF-B8B2-DEB51A4F5D90@microsoft.com...
>I don't know if I'm hitting the right group, if not can somebody tell me
> which group to post in.
>
>
> I need to use Eseutil utility from Microsoft Exchange sever to copy a
> large
> folder(120 gig).
> Eseutil does not accept * character, therefore I need to use it in a " for
> .... in" DOS command.
>
> the root folder to copy from contains subfolders and files and the
> subfolder
> too contains subfolders and files. (each subfolder contains multi level of
> subfolders and files with different extensions)
>
>
> I need to use something as the following :
>
> myRootFolder> for /R %I in (.) do for /D %K in ("%I") do mkdir %K
> for /F %G in (dir %K /A:-D /B) do Eseutil /Y \\server1\c$\%G
> /D\\server2\d$\%G
>
> the command above is not correct. But what I'm trying is:
> 1- loop into each folder
> 2- get the folder name and create an empty similar one on the target(has
> the
> same name)
> 3- fetch all the files under this folder
> 4- use Eseutil to copy the files one by one
>
> thanks for help

A server or a scripting group would be a better place to post
this question. As a starting point, consider this:
- The for /R construct is reported to be buggy.
- Executing such complex commands by retyping them won't
get you far. You should put them into a batch file.
Try this one:
01. @echo off
02. set Source=d:\Exchange
03. set Target=\\Server2\d$
04. set Letter=%Source:~0,2%
05.
06. dir /ad /b /s "%source%" > c:\dir.txt
07. xcopy /s /t /e "%Source%" "%Target%\"
08. for /F "delims=" %%a in ('type c:\dir.txt') do call :Sub %%a
09. del c:\dir.txt
10. goto :eof
11.
12. :Sub
13. set Dir=%*
14. call set Dir=%%Dir:%Letter%=%%
15. echo Eseutil /Y "%*\Mailbox Database.edb" /D"%Target%%Dir%Mailbox
Database.edb"

Adjust Lines #01 and #02 to suit your requirements, then run the batch
file. When you're happy with the result, activate the batch file by
removing the word "echo" in Line #15. Note that Line #07 creates the
target directory structure. No need to do a recursive directory walk!