0

我需要在我的“C”驱动器上找到所有 *.PST 文件,并将所有实例复制到 C:\ 上的新文件夹中

如何在dos-batch中做到这一点并保持原始结构?我不想覆盖第二个实例第一个..

  • 我认为这应该可行,但是我需要保留原始子目录或将每次点击都放到一个唯一的子目录中?
  • 我必须从搜索中排除 c:\backuppst 目录
 for /f "delims=" %%i in ('dir /s /b /a-d *.PST') do copy /b "%%~i" "C:\backuppst" 

编辑

正如你所建议的,我使用 Xcopy:

Xcopy c:*.pst c:\backuppst /i/h/s/y /Exclude:my.txt

在 my.txt 我有: C:\backuppst

但我得到“无法执行循环副本”

4

3 回答 3

2

尝试这个:

for /f "delims=" %%i in ('dir /s /b /a-d c:\*.PST^|findstr /ivc:"C:\backuppst"') do copy /b "%%~fi" "C:\backuppst"
于 2013-06-24T16:00:15.070 回答
0

如果 c:\backuppst 下没有 PST 文件,这应该对您有用。

@echo off
for /f "delims=" %%i in ('dir /s /b /a-d \*.PST') do xcopy "%%~i" "c:\backuppst%%~pi"
pause
于 2013-06-25T02:10:16.620 回答
0

使用xcopy命令,它可以一次完成,无需for.

它支持参数/exclude,它可以让你排除特定的文件或文件夹,比如你的备份目录。

于 2013-06-24T14:50:29.167 回答