Загрузка по FTP не работает с планировщиком Windows 7 - PullRequest
0 голосов
/ 31 января 2019

У меня есть файл .bat на моем Win-7, который загружает файл через FTP в удаленное место.Отлично работает, когда я дважды щелкаю по нему.Но при запуске через запланированное задание я получаю «Отказано в доступе», и он не может найти программу FTP.

Мой пакетный файл:

@Echo Off
setlocal EnableDelayedExpansion
    set _my_Current_Folder=C:\VEHADARTA\Routine_Tasks\T001_Daily_Changes
    Set _FTPServerName=84.95.247.239
    Set _UserName=XXXX
    Set _Password=YYYY
    Set _RemoteFolder=public_html/vehadarta/Batch_Jobs/
    Set _Filename=Daily_Changes.sql
    Set _ScriptFile=ftp1

    call :Put_the_Daily_Changes_sql_file_in_FTP_Server
    pause
    exit

:Put_the_Daily_Changes_sql_file_in_FTP_Server
     >"%_ScriptFile%" Echo verbose
    >>"%_ScriptFile%" Echo open %_FTPServerName%
    >>"%_ScriptFile%" Echo %_UserName%
    >>"%_ScriptFile%" Echo %_Password%
    >>"%_ScriptFile%" Echo cd %_RemoteFolder%
    >>"%_ScriptFile%" Echo lcd %_Current_Folder%
    >>"%_ScriptFile%" Echo prompt
    >>"%_ScriptFile%" Echo binary
    >>"%_ScriptFile%" Echo put %_Filename%
    >>"%_ScriptFile%" Echo quit
    :: Run script
    ftp -s:"%_ScriptFile%"
    Del "%_ScriptFile%"
    exit /b

Запуск через назначенное задание,Я получаю " Доступ запрещен ", а также " Не удалось найти C: \ Windows \ system32 \ ftp1 " (изменение ftp1 на ftp получил те же результаты):

enter image description here

Примечание : при запуске той же задачи-планировщика на моем Win-10 - это работаетхорошо.

Буду признателен за любую подсказку.

1 Ответ

0 голосов
/ 31 января 2019

Запланированные задачи запускаются из C: \ Windows \ System32, и у вас нет разрешения на создание файлов там.

Добавьте cd "%~dp0" в начало кода под setlocal enabledelayedexpansion, чтобы перейти туда, кудасценарий в данный момент находится перед тем, как вы начнете что-либо делать.

Кроме того, не вызывайте сценарий ftp.bat, поскольку ftp уже является командой.

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