我的最终用户将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上创建它们的目录结构,这样,具有相同名称的文件就不会互相覆盖。但我失败了。
有什么想法吗?感谢您帮助我
答案 0 :(得分:2)
我使用此博客寻求帮助请检查一下。它将搜索文件,然后复制到网络位置
答案 1 :(得分:0)
XCopy /-U c:\*.pst m:\migration\pst
/ U选项仅复制已存在的文件。 / -U应该只复制那些尚不存在的那些。
或
echo n|copy /-y c:\*.pst m:\migration\pst
答案 2 :(得分: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
时,您将多次复制同一文件。< / p>
您可以查看解决问题的this post,然后您可以执行robocopy
答案或根据需要进行修改。
由于您有多个用户,并且您的M驱动器是网络驱动器,您可以使用m:\migration\%username%\pst
让用户复制它。这样,如果用户的pst与另一个用户的pst具有相同的名称,您将不会覆盖它,并且您将识别它们。
答案 3 :(得分:0)
一般要注意,PST文件可能会在网络驱动程序或服务器上受到攻击。 MVP和微软也接受了这个事实。因此,它只能在本地驱动器上使用,以避免出现任何问题。