我有一个批处理文件正在搜索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"
答案 0 :(得分:0)
可能是Outlook锁定了文件。在执行批处理之前尝试停止Outlook。
答案 1 :(得分: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"
这节省了将文件导出到列表然后再读回来的需要。