批量搜索文件并移动它们

时间:2013-01-18 09:25:31

标签: search batch-file copy

我有一个批处理文件正在搜索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"

2 个答案:

答案 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"

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