0

そのため、オフィスにある約 10 台の古いコンピューターをバックアップする必要がありますが、現在利用できるネットワークはセットアップされていません。すべてを外付けHDDに入れる予定で、通常は同じために次のものを使用します。

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 に答える