2

多くのネットワーク クライアント マシンから特定のファイルをコピーする手動作業を自動化しようとしています。
すべてのクライアントには、時々バックアップする必要があるファイルがあります。
そのために、クライアントのホスト名のリストがあります。バックアップするファイルは、各ホストの共有フォルダーにあります。
ここで、「dd-mm-yyyy」形式の新しいフォルダーを作成し、すべてのファイルを masterHost にコピーするバッチ ファイルが必要です。
そのために私は書いた

@echo off
FOR /F "TOKENS=1* DELIMS= " %%A IN ('DATE/T') DO SET CDATE=%%B
FOR /F "TOKENS=1,2 eol=/ DELIMS=/ " %%A IN ('DATE/T') DO SET mm=%%B
FOR /F "TOKENS=1,2 DELIMS=/ eol=/" %%A IN ('echo %CDATE%') DO SET dd=%%B
FOR /F "TOKENS=2,3 DELIMS=/ " %%A IN ('echo %CDATE%') DO SET yyyy=%%B
SET date=%dd%-%mm%-%yyyy%
echo New folder name %date%
MKDIR \\MasterHost\d$\%date%
copy \\client1\c$\data\data.txt \\MasterHost\d$\%date%\client1data.txt
copy \\client2\c$\data\data.txt \\MasterHost\d$\%date%\client2data.txt
copy \\client3\c$\data\data.txt \\MasterHost\d$\%date%\client3data.txt
copy \\client4\c$\data\data.txt \\MasterHost\d$\%date%\client4data.txt
copy \\client5\c$\data\data.txt \\MasterHost\d$\%date%\client5data.txt

毎回ホスト名を手動で入力したくないので、クライアントのホスト名のリストを含むファイルからクライアント名を取得するのを手伝ってくれる人はいますか...

hostList.txt は次のようになります

client1
client2
client3
client4
client5
.
.
.
etc

私はバッチスクリプトを初めて使用するため、小さな助けでも感謝します。
ありがとう

4

1 に答える 1

2

次のようなことを試すことができます:

for /F %x in ('type hostList.txt') do ( 
   copy \\%x\c$\data\data.txt \\MasterHost\d$\%date%\client1data.txt
)

すべての copy... 行の代わりに。

于 2013-11-13T07:21:51.447 に答える