0

我的最终用户将 Outlook pst 文件分散在他们的 c 驱动器上。我想出了这个批处理文件来找到它们并将它们复制到最终用户的 M 驱动器。

rem **************************************************
@echo off
if not exist m:\migration mkdir m:\migration
if not exist m:\migration\pst mkdir m:\migration\pst
c:
dir /b c:\*.pst /s > m:\migration\pathdata.txt

pause

for /f "tokens=1 delims=" %%a in (m:\migration\pathdata.txt) do (copy "%%a" m:\migration\pst) 

pause

但是如果文件具有相同的名称,这个微不足道的解决方案将无法处理,这是可以预料的(archive.pst)

我希望使用 xcopy 来复制它们并在驱动器 M 上创建它们的目录结构,这样同名的文件就不会相互覆盖。但我失败了。

有任何想法吗?谢谢你帮我解决这个问题

4

4 回答 4

2

我用这个博客寻求帮助,请检查这个。它将搜索文件,然后复制到网络位置

http://tshootissues.blogspot.com

于 2012-12-06T07:38:17.613 回答
0

dir /b c:\*.pst /s > m:\migration\pathdata.txt 如果你打开你的 pathdata.txt 或者for /f "tokens=1 delims=" %a in (m:\migration\pathdata.txt) do @echo %i你会注意到你有这样的路径,你应该注意一些事情:

C:\Documents and Settings\USERNAME\AppData\Local\Application Data\Application Data\Application Data\Microsoft\Outlook\FILENAME.pst
C:\Users\USERNAME\AppData\Local\Application Data\Application Data\Application Data\Application Data\Microsoft\Outlook\FILENAME.pst

依此类推,但请注意它实际上是同一个文件。发生这种情况是因为dir /b c:\*.pst /s将通过文件夹快捷方式,因此您将拥有一个 .txt 文件,其中包含许多指向同一个 .pst 的路径名,并且当您xcopy将多次复制同一个文件时。

您可以查看解决问题的帖子,然后您可以根据robocopy需要进行回答或修改。

由于您有多个用户,并且如果您的 M 驱动器是网络驱动器,您可以使用m:\migration\%username%\pst它来由用户复制它。这样,如果用户的 pst 与另一个用户的 pst 具有相同的名称,您将不会覆盖它,并且您将识别它们。

于 2013-09-13T16:31:56.920 回答
0
XCopy /-U c:\*.pst m:\migration\pst

/U 选项将仅复制已存在的文件。/-U 应该只复制那些不存在的。

或者

echo n|copy /-y c:\*.pst m:\migration\pst

来源:http ://www.dostips.com/forum/viewtopic.php?t=537

于 2012-07-24T22:56:01.167 回答
0

一般警告 PST 文件可能会在网络驱动程序或服务器上受到易受攻击的威胁。这个道理也被 MVP 和微软所接受。因此,它只能在本地驱动器上使用,以避免出现任何问题。

于 2013-09-20T04:57:45.560 回答