如何在保持原始文件夹结构的同时复制文件?


2

我想知道我是否可以帮助执行以下操作:

在PC(所有单元)中搜索所有autocad文件(* .DWG)和word(* .doc),然后将其复制到我的服务器的新路径中;第一次运行它必须是FULL,然后才更改FULL文件的复制日期。

我尝试使用以下方法:

mkdir \\server1\j$\bk_user\%computername%\FULL\%date:~6,4%-%date:~3,2%-%date:~0,2%\a_ofim\

FORFILES /P C:\ /S /M *.doc* /C "cmd /c COPY @file \\server1\j$\bk_user\%computername%\FULL\%date:~6,4%-%date:~3,2%-%date:~0,2%\a_ofima\"

FORFILES /P C:\ /S /M *.dwg /C "cmd /c COPY @file \\server1\j$\bk_user\%computername%\FULL\%date:~6,4%-%date:~3,2%-%date:~0,2%\a_ofim\"

关键是我不知道如何:

  1. 搜索所有硬盘驱动器,我当前的代码仅搜索驱动器C :(我当时想在每行光盘上放置“如果存在D:\ goto diskD”,以此类推,但是我不确定是否还有另一个更有效

  2. 每次您找到并复制文件时,都将其复制以保持其原始文件夹结构,因为那时没人知道文件的来源,因为这些位置在一起。

我希望你能帮帮我 ..

Answers:


0

如何搜索所有硬盘?

要枚举所有本地驱动器,请使用以下批处理文件(GetDrives.cmd):

@echo off
setlocal enabledelayedexpansion
for /f "skip=1" %%d in ('wmic logicaldisk get caption ^| findstr /r /v "^$"') do (
  set _drive=%%d
  echo !_drive!
  rem add search code here
  )
endlocal

输出示例:

> GetDrives.cmd
C:
add search code here
D:
add search code here
E:
add search code here
F:
add search code here

要跳过DVD / CD驱动器,请使用以下批处理文件(GetDrives.cmd):

@echo off
setlocal enabledelayedexpansion
for /f "skip=1 tokens=1,2" %%d in ('wmic logicaldisk get caption^, drivetype  ^| findstr /r /v "^$"') do (
  if not [%%e]==[5] (
    set _drive=%%d
    echo !_drive!
    echo add search code here
    )
  )
endlocal

输出示例(驱动器d:是我的DVD驱动器):

> GetDrives.cmd
C:
add search code here
E:
add search code here
F:
add search code here

>

进一步阅读


谢谢!!该代码是否非常有用,但是我有一个问题...我该如何不记录或检测网络驱动器?因为我只想查看本地磁盘...
Enrique Olaya

尤里卡!@f关闭setlocal enabledelayedexpansion,用于/ f“ skip = 1 tokens = 1,2” %% d in('wmic logicaldisk get caption ^,drivetype ^ | findstr / r / v“ ^ $”')(如果不是[% %e] == [4](如果不是[%% e] == [5](设置_drive = %% d echo!_drive!echo在此处添加搜索代码))))endlocal
Enrique Olaya

1

我发现在维护文件夹结构的同时传输此类数据的最佳方法是通过Robocopy。

使用Robocopy,您还可以使用多线程支持来帮助加快传输速度。

示例:Robocopy C:\ * .dwg \\ myserver \ backup \ users_C_Drive / MT:4

这将保留文件夹结构。您可以稍后查看并添加自定义排除项,以跳过临时文件和文件夹。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.