将所有驱动器上的文件/文件夹复制到外部驱动器?

时间:2012-12-26 12:44:40

标签: batch-file

因此,我需要备份办公室里的十几台旧电脑,而且目前没有可用的网络设置。我计划将所有内容都放到外部硬盘驱动器上,我通常只使用以下内容。

xcopy C:\ F:\Backup /D /E /Y /EXCLUDE:BackupExclude.txt

以上假设C:\是需要备份文件/文件夹的驱动器,F:\是外部HDD。我正在寻找一种自动化方法。

我想要一个批处理脚本,它枚举系统上所有可用驱动器的每个分区,并使用 xcopy 将所有内容复制到以计算机名称命名的目录中的特定外部HDD和子目录中每个分区/逻辑驱动器。

我希望批处理脚本能够使用其序列号识别外部硬盘。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

这里有一个起点。这应该做你要求的一切。

@echo off
setlocal EnableDelayedExpansion

rem Loop through all of the drives to find the external HDD
for %%D in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    for /f "tokens=5" %%S in ('vol %%~D:') do set "xSerial=%%S"
    if "%xSerial%"=="ABCD-1234" (
        rem TODO Specify the target copy base location
        set "xTarget=%%~D:\%ComputerName%"
    )
)

rem Loop through all of the drives, skipping the external HDD
for %%D in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    for /f "tokens=5" %%S in ('vol %%~D:') do set "xSerial=%%S"
    if not "%xSerial%"=="ABCD-1234" (
        pushd "%%~D:\" 2>nul
        if !ErrorLevel! EQU 0 (
            mkdir %xTarget%\%%~D
            xcopy "%%~D:\" "%xTarget%\%%~D" /D /E /Y /EXCLUDE:BackupExclude.txt
        )
        popd
    )
)
endlocal
pause