如果我没记错的话,PST 文件的默认位置是在%localappdata%\Microsoft\Outlook\
. 如果用户在多个位置有 PST 文件,他可能有多个同名的文件,只是在不同的文件夹中。美好时光。
如果您的用户可能在 以外的位置拥有 PST 文件My Documents
,我建议您修改您的脚本,只需进行一些非常小的更改。
@echo off
setlocal enabledelayedexpansion
for /r "%userprofile%" %%I in (*.pst) do (
rem avoid overwriting in case "outlook.pst" exists in two locations, for instance
if exist "B:\PST\%username%\%%~nxI" (
set cnt=000
rem get count of files matching b:\pst\username\filename*.pst
for /f %%a in ('dir "B:\PST\%username%\%%~nI*%%~xI" 2^>NUL ^| find " File(s) "') do (
set "cnt=!cnt!%%a"
)
rem file of the same name will become filename001.pst, filename002.pst, etc.
set "dest=%%~nI!cnt:~-3!%%~xI"
rem otherwise leave the filename alone
) else set "dest=%%~nxI"
set /P "=Copying !dest!... "<NUL
copy "%%~fI" "B:\PST\%username%\!dest!"
echo Done.
)