Batch file FTP上载不适用于Windows 7计划程序

Batch file FTP上载不适用于Windows 7计划程序,batch-file,ftp,scheduled-tasks,Batch File,Ftp,Scheduled Tasks,我的Win-7上有一个.bat文件,可以通过FTP将文件上传到远程位置。 当我双击它时,效果非常好。 但是当通过计划任务运行它时,我会得到“拒绝访问”,并且它找不到FTP程序 我的批处理文件: @Echo Off setlocal EnableDelayedExpansion set _my_Current_Folder=C:\VEHADARTA\Routine_Tasks\T001_Daily_Changes Set _FTPServerName=84.95.247.239

我的Win-7上有一个.bat文件,可以通过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得到相同的结果):

注意:在我的Win-10上运行相同的调度程序任务时,它工作正常


如果您有任何提示,将不胜感激。

计划任务从C:\Windows\System32运行,您没有在那里创建文件的权限

cd“%~dp0”
添加到
setlocal enabledelayedexpansion
下的代码开头,以便在开始执行操作之前移动到脚本当前所在的位置

另外,不要调用脚本ftp.bat,因为
ftp
已经是一个命令