【问题标题】:batch search for files and move them批量搜索文件并移动它们
【发布时间】:2013-01-18 09:25:31
【问题描述】:

我有一个正在搜索 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"

【问题讨论】:

    标签: search batch-file copy


    【解决方案1】:

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

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

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

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

    这省去了将文件导出到列表然后再读取它们的需要。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • PST 尚未导入 Outlook。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-06
      • 2011-10-12
      相关资源
      最近更新 更多