Я пытаюсь загрузить файл с локального на FTP каждые 10 минут.У меня просто есть информация для входа на FTP, и мне нужно, чтобы процесс выполнялся автоматически каждый раз, когда пользователь входит в Windows.Как я мог это сделать?
Спасибо
Сделайте это с помощью приведенных ниже команд, которые будут работать как пакетный скрипт. Просто поместите значения переменных соответственно, где это необходимо, для URL-адреса или IP-адреса FTP-сервера, имени пользователя и пароля, имени файла и файла ftptmpfile.
Я бы также предложил использовать планировщик заданий Windows, чтобы запланировать выполнение этого скрипта в нужные вам промежутки времени, как только вы подтвердите, что он работает должным образом, как только вы подтвердите его работу.
Я предполагаю, что вы уже знакомы с большинством из этого, но дайте мне знать, если у вас есть какие-либо проблемы или вопросы.
Пример пакетного сценария FTP
(ПРИМЕЧАНИЕ. Если необходимо, просто измените ECHO mput filename.file "uploaddir\filename.file">> %ftptmpfile%
на « ECHO put filename.file "uploaddir\filename.file">> %ftptmpfile%
)
ECHO open ftp.ftpserver.com>> %ftptmpfile%
ECHO ftpusername>> %ftptmpfile%
ECHO ftppassword>> %ftptmpfile%
ECHO prompt>> %ftptmpfile%
ECHO binary>> %ftptmpfile%
ECHO put filename.file "uploaddir\filename.file">> %ftptmpfile%
ECHO dir>> %ftptmpfile%
ECHO bye>> %ftptmpfile%
ftp -s:%ftptmpfile%
IF EXIST "%ftptmpfile%" DEL /Q /F "%ftptmpfile%"
Создайте пакетный или VB-скрипт, который будет делать то, что вы хотите. Включите его, чтобы продолжать работать бесконечно, и позволяйте загружать его каждые 10 минут.
Затем вы можете создать запланированное задание для выполнения при входе в систему.
Я не вижу веской причины, почему вы хотели бы сделать такую вещь, хотя ... И зачем начинать вход в систему, если он должен запускаться каждые десять минут? Вы можете просто запланировать его запуск каждые десять минут.
@PIMP_JUICE_IT имеет правильный ответ. Не выбирайте это как ответ. Это только переформатирование ответа PIMP_JUICE_IT. Я считаю, что это проще и проще написать, поставив временный файл первым. Затем оставшаяся часть строки выглядит как сценарий FTP.
Цитирование является более безопасным и обязательным, если переменная TEMP содержит пробел.
Кроме того, использование переменной RANDOM в имени временного файла дает ему больше шансов быть уникальным, но это не гарантируется. Есть способы сделать это, но выходящие за рамки этой заметки. Удаление любого существующего временного файла гарантирует, что код не добавляется к существующему файлу, что плохо для этого скрипта. Однако, если другая программа фактически использует этот временный файл, это, вероятно, будет иметь вредные последствия для другой программы.
SET "ftptmpfile=%TEMP%\app_ftp_%RANDOM%.tmp"
IF EXIST "%ftptmpfile%" (DEL /Q /F "%ftptmpfile%")
ECHO>>"%ftptmpfile%" open ftp.ftpserver.com
ECHO>>"%ftptmpfile%" ftpusername
ECHO>>"%ftptmpfile%" ftppassword
ECHO>>"%ftptmpfile%" prompt
ECHO>>"%ftptmpfile%" binary
ECHO>>"%ftptmpfile%" put filename.file "uploaddir\filename.file"
ECHO>>"%ftptmpfile%" dir
ECHO>>"%ftptmpfile%" bye
ftp -s:"%ftptmpfile%"
IF EXIST "%ftptmpfile%" DEL /Q /F "%ftptmpfile%"