0

我有一个正在搜索 PST 文件的批处理文件,使用搜索到的文件的位置创建一个.txt文件,然后在 Documents 目录中创建一个文件夹。我想要做的是将 PST 文件复制到 Documents 目录中的新目录。问题是我无法将 PST 复制到新目录??知道我在做什么错吗?

.bat看起来像这样;

dir C:\*.pst /s /b > %USERPROFILE%\Desktop\pstFileLocation.txt
md %USERPROFILE%\Documents\Refresh_PST
for /F "tokens=3" %%v in ('pstFileLocation.txt') do copy "%i" "%USERPROFILE%\Documents\Refresh_PST"
4

2 回答 2

0

可能是文件被 Outlook 锁定。在执行批处理之前尝试停止 Outlook。

于 2013-01-18T09:30:37.773 回答
0

问题是您如何阅读文本文件。您正在使用tokens=3这意味着您正在尝试读取每行中的第 3 项(默认情况下,项目由空格分隔)并且如果它们只是文件路径,则很可能没有第 3 项。

您还试图复制%i不存在的变量。

您可以使用将整行读取为一个项目来修复令牌问题tokens=*,但这样做会更容易和更快

md "%USERPROFILE%\Documents\Refresh_PST"
for /r C:\ %%a in (*.pst) do copy "%%a" "%USERPROFILE%\Documents\Refresh_PST"

这节省了将文件导出到列表然后再读回的需要。

于 2013-01-18T10:23:44.997 回答