0

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

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

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

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

我希望批处理脚本使用其序列号识别外部 HDD。

有任何想法吗?

4

1 回答 1

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
于 2012-12-26T15:46:02.557 回答