2015-09-10 2 views
0

Я пытаюсь подключиться к сетевому диску, скопировать файл и перенести его в другое место и выполнить запись, если он успешный или нет. Это то, что я получил до сих пор:Копирование файла на подключенный диск не работает

@echo off 
@setlocal enableextensions enabledelayedexpansion 

if exist Transfer_logfile.txt (
    ECHO Y | del Transfer_logfile.txt 
) 

set LogFile=_logfile.txt 
set logg=^> _^&^& type _^&^&type _^>^>%LogFile% 


for /F "tokens=*" %%A in (ipaddresses.txt) do (

    net use \\%%A\c$\test /USER:test %logg% 
    echo copying files across to %%A... %logg% 
    COPY -f -R -Y C:\test\test.exe \\%%A\c$\test\test.exe %logg% 
    echo Copy completed.. %logg% 
    net use \\%%A\c$\test /delete /Y %logg% 
) 

pause 

Любая помощь в том, как закончить это, будет оценена по достоинству.

Я изо всех сил стараюсь сохранить любые ошибки в выходе. Если это ошибка, я хочу, чтобы он просто сохранил, что он вышел из строя, и перейдите к следующему IP-адресу в текстовом файле IP-адреса.

Я думаю, что мне нужно обернуть, если вокруг сети будет проверять, что первый адрес ip-адреса. Однако это не сработает.

@echo off 
@setlocal enableextensions enabledelayedexpansion 

if exist Transfer_logfile.txt (
    ECHO Y | del Transfer_logfile.txt 
) 

set LogFile=_logfile.txt 
set logg=^> _^&^& type _^&^&type _^>^>%LogFile% 

for /F "tokens=*" %%A in (ipaddresses.txt) do (

ping -n %%A > NUL 
IF ERRORLEVEL 0 (
    echo 
ELSE goto :skipcopyhost1 
net use \\%%A\c$\test %logg% 
echo copying files across to %%A... %logg% 

COPY -f -R -Y C:\test\test.exe \\%%A\c$\test\test.exe %logg% 
echo Copy completed.. %logg% 

net use \\%%A\c$\test /delete /Y %logg% 
) 

pause 
+0

Что вы ожидаете от содержимого лога? Кроме того, ваши флаги копирования не являются окнами. – ths

ответ

0

Попробуйте это не испытанный командный код:

@echo off 
if not exist ipaddresses.txt goto :EOF 
setlocal 
del /F Transfer_logfile.txt 2>nul 
set "LogFile=Transfer_logfile.txt" 

for /F %%A in (ipaddresses.txt) do (
    %SystemRoot%\System32\ping.exe -n %%A >nul 
    if errorlevel 1 (
     echo %%A is not available in network.>>%LogFile% 
    ) else (
     echo Connecting to %%A ...>>%LogFile% 
     %SystemRoot%\System32\net.exe use X: \\%%A\c$\test /persistent:no /Y 2>&1 >>%LogFile% 
     echo Copying file to %%A ...>>%LogFile% 
     copy /B /V /Y C:\test\test.exe X:\test.exe 2>&1 >>%LogFile% 
     echo Disconnecting from %%A ...>>%LogFile% 
     %SystemRoot%\System32\net.exe use X: /delete /Y 2>&1 >>%LogFile% 
    ) 
    echo.>>%LogFile% 
) 
endlocal 
pause 

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

  • copy /?
  • del /?
  • for /?
  • goto /?
  • if /?
  • net /?
  • net use /?
  • set /?

Далее читать статьи Microsoft:

Я не объяснить все ошибки в коде, поскольку они слишком много.

Смежные вопросы