给出一个UNC和一个本地目录,我将如何以一种简单,递归的方式将文件从remove复制到local。
例如:-这当前有效,并将MyDIR中的所有文件复制到MyDEST:
SET MyDIR="\\123.10.10.10\Logs\Files\Server12\Folder1"
SET MyDEST="C:\Users\Desktop\Logs\Files"
robocopy %MyDIR% %MyDEST% /MIR
我遇到的问题是,在MyDIR中,Server12存储了多个(通常是3个)文件夹,并且其中有我需要的文件,因此一定程度的迭代会有所帮助。
所以我可以尝试一些手动工作,并且
SET MyDIR1=.....Folder1"
SET MyDIR2=.....Folder2"
SET MyDIR3=.....Folder3"
...根据需要 但我还必须
robocopy %MyDIR1% %MyDEST% /MIR
robocopy %MyDIR2% %MyDEST% /MIR
robocopy %MyDIR3% %MyDEST% /MIR
这很容易,但是有没有办法遍历列表甚至更好,有没有办法遍历Server12的所有文件夹并复制所有文件?
我当时在考虑使用Powershell,但我只是想将某些东西放在一起以便快速,偶尔使用。我愿意但不确定是否应该朝这个方向发展,因为我对此有一些经验,但经验不足。
我能够使某些for循环工作,但是在尝试使其与UNC路径一起工作(以及使用%CD%变量列出UNC目录)时出错。
答案 0 :(得分:0)
最后,副本可以满足我的需求,但是我的本地路径中包含破折号(是'-',因为我的公司使用的是OneDrive,所以出现了问题)使其难以正常工作。我向FORFILES传递了变量,其中包含破折号(如下所示)。
最后,我不得不使用一个临时文件夹。...
SET MyRootDIR="\\123.10.10.10\Logs\Files\Server12"
SET MyDEST="C:\Users\Desktop\Logs - files\Files"
SET MyTempDEST="C:\LOGSTemp"
REM Delete these folders to empty them
DEL /Q %MyDEST%\*.*
DEL /Q %MyTempDEST%\*.*
PushD %MyRootDIR% &&(
FORFILES /M *.* /S /C "cmd /c copy @file %MyTempDEST%"
) & PopD
MOVE %MyTempDEST%\*.* %MyRootDIR%
尝试逃跑等,没有运气,但最终还是成功了