Другие языки программирования и технологии

По сети отправляется файл мне на компьютер, но дело в том, что я не знаю когда он закончил передачу этого файла...

....и когда уже можно его использовать. Есть возможность проверить это? если да, то каким образом? я жду от вас решение этой проблемы через батник или скрипт (мне автоматизировать нужно)
SM
Simpoticnii Maksudov
8 276
Вариант a: после копирования cmd вызывает другой cmd или работает сам =)

Вариант b: С одной стороны передаете файл с другим расширением н-р .tmp, После копирования расширение .tmp переименовываете в нужное.
На другом конце периодически смотрите появился ли нужный файл с нужным расширением
Похожий вариант - после копирования создать дополнительный пустой файл, который будет считаться признаком окончания копирования.

Вариант с: C помощью WMI (vbscript/jscript) запускаете копирование на удаленной машине и на удалённой машине выполняются вообще все действия. Как вариант runas и psexec из SysInternals.
https://technet.microsoft.com/ru-ru/sysinternals/bb897553.aspx или что-то вроде telnet / ssh.

Вариант d: Создаете задачу в планировщике на удалённой машине. После копирования cmd запускает удаленно нужную задачу с помощью schtasks. Или задача сама запускает всю обработку, а Вы её только стартуете (аналогично с: только через задачу)
http://cmd4win.ru/administrirovanie-computera/systemnoye-administrorovanie/314-sozdanie-naznachennyx-zadanij-schtasks

Вариант e: Периодически парсить в cmd net file и смотреть когда файл перестанет быть открытым. http://cmd4win.ru/administrirovanie-seti/upravlenie-setyu/65-net-file

Есс-но описывать все варианты подробнее - отдельная история . Если какие-то варианты непонятны - пишите в комменты. В каких-то случаях лучше и приемлемо одно, в каких-то другое.
Esen4Ik Usenbekov
Esen4Ik Usenbekov
84 764
Лучший ответ
Алгоритм такой:
1. Вычисляем контрольную сумму (например MD5) файла на удаленном хосте
2. Передаем файл по сети
3. После передачи файла по сети создаем рядом еще один файл, содержащий вычисленную на удаленном хосте контрольную сумму
4. Локальный демон или запускаемый из планировщика скрипт периодически проверяет наличие файла с контрольной суммой. Если такой файл появился, то происходит считывание его содержимого, вычисление контрольной суммы уже средствами локального хоста и сравнение результата. Если контрольные суммы совпадают - файл был успешно передан по сети и им можно пользоваться.
Esen4Ik Usenbekov Если мы можем вычислить контрольную сумму на удалённом хосте, то мы и сами на удалённом хосте можем скопировать - соотв. всегда будем знать целиком файл пришел или нет.

К тому-же в вычислении md5 смысла не вижу и вариант похож на вариант b с файлом-флагом
Esen4Ik Usenbekov Ну и опять-же как Вы на удаленном хосте запустите первоначальный рассчет MD5?