基本上,我们正在将大约 50 个桌面从 XP 迁移到 7。我无法安装任何额外的程序来完成这项任务。我正在编写一个脚本,将桌面、收藏夹和我的文档以及一些特定文件类型从原始计算机复制到用户的共享驱动器。稍后将能够将所有文件移动到他们正在获取的新机器上。我正在尝试通过 Windows 递归搜索并获取您将在脚本中看到的所有 .pst 文件和其他文件,并将它们备份到共享上的文件夹中(但不是在目录结构中,我只想要所有文件在一个目录,无论它们来自哪里),但我的文档除外。他们在“我的文档”中放置的任何内容都应在搜索中排除。无论如何,这就是我开始的:
@echo off
cls
set USRDIR=
set SHARE=
set /P USRDIR=Enter Local User Directory:
set /p SHARE=Enter Shared Drive Name:
set UPATH="c:\Documents and Settings\%USRDIR%"
set SPATH="g:\!MIGRATION"
set ESRI="%UPATH%\Application Data\ESRI"
net use g: /delete
net use g: \\server\%SHARE%
md %SPATH% %SPATH%\GIS %SPATH%\Outlook %SPATH%\Desktop %SPATH%\Documents %SPATH%\Favorites
if exists %ESRI% md %SPATH%\ESRI
md %SPATH%\misc %SPATH%\misc\GISfiles %SPATH%\misc\XMLfiles %SPATH%\misc\CSVfiles
for /R %%x in (*.mxd) do copy "%%x" "%SPATH%\GIS\"
for /R %%x in (*.dbf) do copy "%%x" "%SPATH%\misc\GISfiles\"
for /R %%x in (*.xml) do copy "%%x" "%SPATH%\misc\XMLfiles\"
for /R %%x in (*.csv) do copy "%%x" "%SPATH%\misc\CSVfiles\"
for /R %%x in (*.pst) do copy "%%x" "%SPATH%\Outlook\"
if exist %ESRI% xcopy /y /d /s /i /z %ESRI% %SPATH%\ESRI && echo ESRI YES || ESRI NO
xcopy /y /d /s /i /z "%UPATH%\Desktop" "%SPATH%\Desktop" && echo DESK YES || DESK NO
xcopy /y /d /s /i /z "%UPATH%\My Documents" "%SPATH%\Documents" && echo DOCS YES || DOCS NO
xcopy /y /d /s /i /z "%UPATH%\Favorites" "%SPATH%\Favorites" && echo FAVS YES || FAVS NO
echo "Script Complete!"
pause
然后我决定我想排除我的文档以防万一,这样我就不会得到一堆重复的东西,他们放在我的文档中的任何东西最终都会被复制两次。所以我把那个递归块改成这样:
for /R %%x in (*.mxd) do xcopy /y /d /z /exclude:"\My Documents\" "%%x" "%SPATH%\GIS\"
for /R %%x in (*.dbf) do xcopy /y /d /z /exclude:"\My Documents\" "%%x" "%SPATH%\misc\GISfiles\"
for /R %%x in (*.xml) do xcopy /y /d /z /exclude:"\My Documents\" "%%x" "%SPATH%\misc\XMLfiles\"
for /R %%x in (*.csv) do xcopy /y /d /z /exclude:"\My Documents\" "%%x" "%SPATH%\misc\CSVfiles\"
for /R %%x in (*.pst) do xcopy /y /d /z /exclude:"\My Documents\" "%%x" "%SPATH%\Outlook\"
无论如何,我的问题是,这是最有效的方法吗?有没有更好的办法?我很好奇,因为我这里没有人可以提出想法或任何东西,我是这里唯一的现场支持。如果有人看到更好的方法或认为这是他们会这样做的方式,请告诉我。那里还有更多的文件类型,但我删除了其中的大部分,所以代码示例没有那么长,足以让大家明白这一点。
编辑:为了清楚起见,我不是这个组织的 IT 部门。我是该部门到一个单独的 IT 部门的技术支持联络员。我们实际的 IT 部门将此称为迁移,但它或多或少是一种简单的“让新机器停止工作而不做任何准备”之类的汤三明治操作。我无法以任何方式安装、删除或更改系统,我只能备份文件。