這裏可能有些東西可以使用。 copy100.txt
文件是所有主機/ IP地址和要複製的文件名的列表。
C:\Users\pwatson\t\copy100>type copy100.txt
localhost,Users\pwatson\t\bt\file1.txt
localhost,Users\pwatson\t\bt\file2.txt
localhost,Users\pwatson\t\bt\file3.txt
該腳本將每個文件被複制的腳本,寫一個腳本來START
他們。
C:\Users\pwatson\t\copy100>type copy100.bat
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET /A BCOUNT=0
SET BASE_FILENAME=%TEMP%\copy100_%RANDOM%
SET DOIT_FILENAME=%BASE_FILENAME%_doit.bat
IF EXIST "%DOIT_FILENAME%" (DEL "%DOIT_FILENAME%")
SET TARGET_DIR=.
ECHO>>"%DOIT_FILENAME%" @ECHO OFF
ECHO>>"%DOIT_FILENAME%" (
FOR /F "usebackq tokens=1,2 delims=," %%h IN (`TYPE copy100.txt`) DO (
SET BATNAME=%BASE_FILENAME%_!BCOUNT!.bat
IF EXIST "!BATNAME!" (DEL "!BATNAME!")
ECHO>>"!BATNAME!" @ECHO OFF
ECHO>>"!BATNAME!" COPY "\\%%h\C$\%%i" "%TARGET_DIR%"
ECHO>>"!BATNAME!" EXIT
ECHO>>"%DOIT_FILENAME%" START "Copy from %%h" /MIN "!BATNAME!"
SET /A BCOUNT=!BCOUNT!+1
)
ECHO>>"%DOIT_FILENAME%") ^| SET /P "="
ECHO>>"%DOIT_FILENAME%" EXIT
(
START "copy100 doit.bat" /MIN "%DOIT_FILENAME%"
) | SET /P "="
IF EXIST "%DOIT_FILENAME%" (DEL "%DOIT_FILENAME%")
IF EXIST "%BASE_FILENAME%*" (DEL "%BASE_FILENAME%*")
ECHO /B
來源
2015-11-07 21:49:08
lit
你不能在同一時間從100個位置執行復制,直到你的硬件能夠做到這一點。 –
服務器有一個高規格&肯定可以做到這一點...但這裏是一個程序的問題....就像如果我創建了100個批處理文件,並在某些時候運行它們通過一個vb.net工具,談判到這些批次文件...它會有幫助嗎? – Omran
你可以很容易地嘗試一個cmd腳本(.bat文件),該腳本在100個命令上啓動了'START'。作業調度程序可能會做你想做的事。 https://sourceforge.net/projects/jobscheduler/ – lit