Пакетный файл для копирования файлов на множество машин - PullRequest
1 голос
/ 05 июня 2009

Мне нужен пакетный файл, который копирует файлы (8) из моего локального каталога в список машин в сети (имя хоста или IP) или мне нужно ввести следующее имя хоста / ip

Я бы предпочел не запускать скрипт снова и снова для ввода следующего имени хоста / ip

Мне также понадобится просмотреть выходные данные для каждой системы, чтобы убедиться, что она правильно подключена и успешно скопирована. Возможно, "готов к обработке дальше?" после каждой машины?

Я не знаю, как пакетный файл эквивалентен STDIN, поэтому, пожалуйста, простите ?STDIN? заполнитель

Пока все, что у меня есть, это

net use S: \\?STDIN?\C$ /user:domain\myusername mypassword  

copy %~file01.txt S:\%SystemRoot%\system32 /y
copy %~file02.txt S:\%SystemRoot%\system32 /y
copy %~file03.txt S:\%SystemRoot%\system32 /y
copy %~file04.txt S:\%SystemRoot%\system32 /y
copy %~file05.txt S:\%SystemRoot%\system32 /y
copy %~file06.txt S:\%SystemRoot%\system32 /y
copy %~file07.txt S:\%SystemRoot%\system32 /y
copy %~file08.txt S:\%SystemRoot%\system32 /y

net use :s /delete

do it again

Ответы [ 2 ]

1 голос
/ 06 июня 2009

Вы можете запросить ввод данных пользователем (и сохранить его в переменной среды) с помощью команды set /p:

set /p HOST=Machine?
net use S: \\%HOST%\C$ ...

Вы можете выполнить цикл с помощью метки и перейти к ней. Вы должны предложить способ выхода, хотя:

:loop
set /p HOST=Machine? (leave blank to exit)
if [%HOST%]==[] goto :EOF
net use S: \\%HOST%\C$ ...
copy ...
...
goto loop

Если вы не хотите вводить каждое имя хоста по отдельности, вы также можете перебрать аргументы в командном файле:

:loop
if [%1]==[] goto :EOF
net use S: \\%1\C$ ...
copy ...
...
shift
goto loop

Вы можете назвать это следующим образом:

my_batch machine1 machine2 192.168.12.14 ...

НТН

0 голосов
/ 06 июня 2009

Вы можете использовать «if ERRORLEVEL 1», чтобы увидеть, произошла ли ошибка в копии, которая позволит вам перехватить проблемы с копией. Вместе с «if EXIST», чтобы проверить, что файл там, тем не менее, вы можете получить некоторые файлы нулевой длины.

Хотя, возможно, вы захотите изучить Powershell как более способный инструмент для этой работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...