Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
мастер ломания компов
 Аватар для verbenin
30 / 36 / 1
Регистрация: 19.12.2011
Сообщений: 474
Записей в блоге: 1

Загрузка файла на FTP-сервер с заменой имеющегося и проверкой целостности загруженного

22.09.2014, 21:21. Показов 3496. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня на компе есть файл, который посредством командной строки будет отсылаться мне на ftp каждые десять минут. Но я не уверен, что если на ftp будет файл с таким же названием он перезапишется, а не просто сотрется. Как то можно решить эту проблему?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.09.2014, 21:21
Ответы с готовыми решениями:

Загрузка файла на FTP-сервер с заменой
Здравствуйте!Нашел в сети код bat'ника,который скачивает файлы с FTP.Все скачивает отлично,но мне теперь нужно отправить файл на FTP с...

WebClient загрузка файла на ftp с заменой
Здравствуйте, уважаемые. Есть код - WebClient ftp = new WebClient(); ftp.BaseAddress =...

Загрузка файла на ftp сервер
Как загрузить файл на ftp сервер?

3
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
23.09.2014, 01:30
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Я использую вот такой VBS для отправки файла через контекстное меню
с контролем целостности закачки через повторное скачивание.

Можете подкорректировать под свои цели.

Кликните здесь для просмотра всего текста

Использование:

wscript "FTP_and_ClipBoard.vbs" "Proga.zip" -subfolder:Safe -verify
[-subfolder:Safe] (optional) - подкаталог, куда загружать
[-verify] (optional) - контрольная проверка корректности закачки.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
Rem FTP and Clipboard ver.1.4
Rem Отправка на FTP и копирование ссылки в буфер - by (c) Alex Dragokas
 
Option Explicit
Dim objArgs, Server, DomainName, Port, User, Pass, Folder, SystemFolder, CloseDOS, DosStr, SendTo, WSHShell, objFSO, n
Dim isSilent, verify, noclipboard, FTPTempFld, FTP_DL_Name, Ret
 
'=== Данные учетной записи FTP ===
 
Server = "*******"
DomainName = "***********" 'Будет отображаться в ссылке для скачивания
'Если не задан ( DomainName = "" ) , тогда вместо него будет использоваться IP-адрес
if DomainName = "" then DomainName = Server
Port = "21"
User = "*****"
Pass = "******"
 
SystemFolder = "" 'Системная папка (на некоторых серверах она = public_html )
'Папка на FTP, куда будут складываться файлы
Folder = "Forum/Dl" 'подкаталог
 
isSilent = false
noclipboard = false
verify = true
 
Dim i
for i = 1 to WScript.Arguments.Count - 1
  if instr(1,WScript.Arguments(i), "subfolder:",1) <> 0 then Folder = mid(WScript.Arguments(i),instr(WScript.Arguments(i),":")+1)
  if instr(1,WScript.Arguments(i), "silent",1) <> 0 then isSilent = true
  if instr(1,WScript.Arguments(i), "noclipboard",1) <> 0 then noclipboard = true
  if instr(1,WScript.Arguments(i), "verify",1) <> 0 then verify = true
next
 
'Флаг - закрывать ли консольное окно после передачи данных (true или false)
CloseDOS = True
if not CloseDOS then DosStr = "&pause"
 
Set WSHShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
 
Set objArgs = wscript.Arguments
If objArgs.Count = 0 Then 'Проверяем аргументы (Drag & Drop "путь к файлу")
    SendTo = WSHShell.SpecialFolders("SendTo")
    objFSO.CopyFile WScript.ScriptFullname, SendTo & "\"
    WScript.Echo "Скрипт установлен в папку Отправить (SendTo)"
else
    Dim FName, Link, FF, TmpFile, objFile
    
    'Получаем имя файла
    FName = Mid(objArgs(0), InStrRev(objArgs(0), "\") + 1)
    'Интернет-адрес
    Link = DomainName & "/" & Folder & "/" & FName
    
    'Копируем в буфер обмена Windows
    if not noclipboard then WSHShell.Run "cmd.exe /C <nul set /p ""=" & Link & """ | CLIP", 0, False
 
    FTPTempFld = WSHShell.ExpandEnvironmentStrings("%temp%") & "\FTP_temp"
    if not objFSO.FolderExists(FTPTempFld) then objFSO.CreateFolder FTPTempFld
 
    'Формируем строку коннекта для утилиты FTP
    TmpFile = FTPTempFld & "\temp_" & CInt(Rnd() * 1000)   
 
    Set objFile = objFSO.OpenTextFile (TmpFile, 2, True, 0) 'True - создать файл, ForWriting = 2
        objFile.WriteLine "open " & Server & " " & Port
        objFile.WriteLine User
        objFile.WriteLine Pass
        objFile.WriteLine "quote pasv"
        objFile.WriteLine "cd " & SystemFolder & Folder
        objFile.WriteLine "binary"
        objFile.WriteLine "hash"
        objFile.WriteLine "put """ & objArgs(0) & """"
    if verify then
        FTP_DL_Name = FTPTempFld & "\" & objFSO.GetFileName(objArgs(0))
        objFile.WriteLine "lcd """ & FTPTempFld & """"      
        objFile.WriteLine "get """ & "/public_html/" & SystemFolder & Folder & "/" & objFSO.GetFileName(objArgs(0)) & """"
    end if
        objFile.WriteLine "disconnect"
        objFile.WriteLine "bye"
    objFile.Close
    
    'Добавляем утилиту FTP в исключения файрвола и запускаем
    WSHShell.Run "cmd.exe /c ""(netsh firewall add allowedprogram """ & WSHShell.ExpandEnvironmentStrings("%windir%") & _
      "\system32\ftp.exe"" ENABLE& ftp -s:""" & TmpFile & """" & DosStr & ")""", 1, True
 
    objFSO.DeleteFile TmpFile, True
 
    if verify then
        ret = FileCompare(objArgs(0), FTP_DL_Name)
 
        select case ret
        case 0
            n = inputbox("[ OK ] - Файл проверен." & vbcrlf & vbcrlf & "Путь к файлу на FTP",,Link)
        case 1
            msgbox "Ошибка !!!  Файл на FTP поврежден !", vbCritical
        case 2
            msgbox "Ошибка !!!  Не удалось закачать файл !", vbCritical
        end select
    else
        n = inputbox("Путь к файлу на FTP",,Link)
    end if
 
    On error resume next
    objFSO.DeleteFile FTP_DL_Name, True
    objFSO.DeleteFolder FTPTempFld, True
    on error goto 0
  
    'wscript.echo "Путь к файлу на FTP: " & vbLf & Link & String(2, vbLf) & _
    '"Путь к файлу скопирован в буфер обмена Windows."
End If
Set WSHShell = Nothing: Set objFile = Nothing: Set objFSO = Nothing: Set objArgs = Nothing
 
Function FileCompare(path1, path2)
    'возвращает результат двоичного сравнения двух файлов
    'с помощью системной утилиты fc.exe. Возвращаемое значение:
    '0 - файлы одинаковы;
    '1 - файлы различаются;
    '2 - файл не найден
    FileCompare = CreateObject("wscript.shell").Run("cmd /c fc /b """ & path1 & """ """ & path2 & """", 1, True)
End Function


Если коротко.
Не должна спрашивать на счет замены (вообще от сервера зависит).
Просто подключитесь, установите конечный каталог через CD.
используйте команду PUT "c:\file.txt".
Удаление - команда DELETE.
Первый раз попробуйте закачать файл вручную из командной строки, чтобы увидеть вероятные ошибки.
Справка по командам.
Примеры других скриптов FTP можете найти у нас в каталоге в разделе.
0
мастер ломания компов
 Аватар для verbenin
30 / 36 / 1
Регистрация: 19.12.2011
Сообщений: 474
Записей в блоге: 1
24.09.2014, 23:10  [ТС]
Ну вот смотрите, я отсылаю файл на ftp такими вот командами -
Bash
1
2
3
4
5
6
@echo open 11.11.111.111 //ip адрес сервака
@echo cl12312_vk //его логин
@echo vk123456 //его пароль
@echo lcd "public_html\temp" //место куда подгружать файл
@echo mput "%APPDATA%\temp\file" /s //сам файл
@echo bye»%APPDATA%\log //прощаюсь с серваком
Ну вот вопрос, будет ли файл лежащий на сервере с таким же именем заменяться на новый?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
25.09.2014, 02:06
А скачать и проверить никак?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.09.2014, 02:06
Помогаю со студенческими работами здесь

Загрузка файла на FTP-сервер
Добрый день! Есть простенькая задачка: Средствами powershell закинуть текстовый файл на ftp-сервак. Использую класс webclient и...

FTP: загрузка файла на сервер
Не могу найти понятной мне документации или примера ftp сервера который просто загружает папку на сервер, может скините похожий пример с...

Загрузка файла на ftp сервер
получаю от сервера ответ 226, загрузка окончено загружено 576 байт, но самого файла на ftp-сервере нет чяднт? FtpWebRequest request =...

Загрузка файла на FTP-сервер
Имеется файл по адресу: http://www.goldfiles.org/dw/zagruska.php?url=http://95.71.31.105/sp05A/Krendel/aobrorbeta_en.7z&amp;p=28&amp;n=867 ...

Загрузка на FTP-сервер последнего созданного в папке файла
Есть скрипт который копирует на ftp последний созданный файл в папке. Но вылетает ошибка при заливке файла: Exception calling...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru