Я хочу, чтобы скопировать конкретный файл с одной машины на 5 других машин, поэтому у меня есть сервер список файлов содержит IP-адреса каждой машины, как:NET USE несколько серверов копирования файлов
10.10.1.3
10.10.1.4
10.10.1.5
10.10.1.6
10.10.1.7
в моем пакетном файле:
SET File=C:\Files\servers.txt
SET User=user
SET Password=pass
IF EXIST b:\ (
NET USE b: /DELETE /Y
)
FOR /F %%A IN (%File%) DO (
START /WAIT NET USE b: \\%%A\C$\Temp /user:%User% %Password%
COPY C:\Logs\L1.log b:\L1.log /Y
IF EXIST b:\ (
NET USE b: /DELETE /Y
)
)
проблема в первом сервере, я получаю сообщение об ошибке: не удается найти указанный диск, но и для других серверов все работает отлично. Я думаю, что это что-то с NET USE, конечно, возможно, сеть карт удалена до завершения копирования?
Есть ли какой-либо путь в пакетном файле, чтобы зацикливать некоторые серверы, и для каждого из серверов открывать сетевые копии файлов карты до завершения копирования и перехода к следующему серверу?
EDIT:
У меня есть обновления для этой проблемы: машины-источника и целевой машина находится в разных доменах. У меня есть имя пользователя в качестве администратора в обеих машинах. Машины знают друг друга (я могу открыть целевую папку на исходном компьютере, например, \ server \ C $ \ temp, и я могу вставить все, что я там хочу)
Я попытался скопировать файлы без использования сети и просто скопировать из C: \ file.log \ server \ c $ \ temp \ file.log для каждого сервера (у меня 5), а для 3 серверов он работал, а у двух других - ошибка: сбой входа: неизвестное имя пользователя или неверный пароль
FOR /F %%A IN (%File%) DO (
COPY C:\temp\file.log \\server\c$\temp\file.log /Y
)
В чем проблема?
Помогите? Благодарим вас за продвижение.
Разве это не 'NET USE b:/DELETE: Y [ES]', а не 'NET USE b:/DELETE/Y'? – aschipfl
Не нужно использовать команду start с командой net. Пакетные файлы являются последовательной обработкой. Следующая команда не будет выполняться до завершения предыдущей команды. – Squashman
@aschipfl: это просто 'net use b:/delete' – Stephan