Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理文件&x27;在计划任务期间,服务器的核心FTP线路未运行。如果手动启动,则工作正常_Batch File_Scheduled Tasks_Ftps_Windows Server 2012 R2 - Fatal编程技术网

Batch file 批处理文件&x27;在计划任务期间,服务器的核心FTP线路未运行。如果手动启动,则工作正常

Batch file 批处理文件&x27;在计划任务期间,服务器的核心FTP线路未运行。如果手动启动,则工作正常,batch-file,scheduled-tasks,ftps,windows-server-2012-r2,Batch File,Scheduled Tasks,Ftps,Windows Server 2012 R2,我有一个简单的批处理文件,需要每周运行,通过核心FTP上传一些文件 我正在使用免费版本的核心FTP MySavedProfile是我使用Core FTP的站点管理器创建的已保存配置文件的站点名称。配置文件包含要连接到的站点的URL/凭据/etc 以下是批处理文件的内容: SET logf=confirm.log echo test-start >> %logf% "C:\Progra~1\CoreFTP\coreftp.exe" -B -s -pasv -O -site

我有一个简单的批处理文件,需要每周运行,通过核心FTP上传一些文件

我正在使用免费版本的核心FTP

MySavedProfile是我使用Core FTP的站点管理器创建的已保存配置文件的站点名称。配置文件包含要连接到的站点的URL/凭据/etc

以下是批处理文件的内容:

  SET logf=confirm.log
  echo test-start >> %logf%
  "C:\Progra~1\CoreFTP\coreftp.exe" -B -s -pasv -O -site MySavedProfile -u "C:\Progra~2\PathToFiles\FileToUpload.txt"
  echo test-finish >> %logf%
对于Windows Server 2012 r2任务计划程序,我在运行批处理文件的任务计划程序库根上创建了一个基本的每周计划任务。对于此计划任务,我有:

(在“常规”选项卡下)

(正在行动中)

以下是我得到的奇怪行为:

如果我直接双击批处理文件,它可以正常工作,并通过核心FTP上传文本文件

但是,如果我尝试让Windows任务调度器运行它,它会运行除核心FTP行之外的所有内容。也就是说,我得到了通常的:

 test-start
 test-finish
在confirm.log文件中,但文件toupload.txt尚未上载到远程服务器,并且我无法检测到CoreFTP中的任何错误

我已使用具有运行批处理文件权限的服务帐户以及我自己的此计划任务帐户尝试了此操作。我得到了同样的结果:它似乎没有运行CoreFTP行。至少不是通过任务调度器。我需要这个上传是自动的

我搜索了核心FTP文档、谷歌等,似乎没有人遇到过这个问题。我应用了来自遥远相关问题的建议,但没有一个有效


任何帮助都将不胜感激。谢谢。

唯一的方法是使用完整版本的Core FTP(即Core FTP Pro)。如果使用LE版本,则必须选中“仅在用户登录时运行”选项

发生这种情况的原因是开始时的启动屏幕

如果您不能永远登录,您可以创建一个用户,该用户将始终只为这些任务登录


记得在CoreFTP上使用-Log选项来检查它是否真的在做什么。

尝试“仅在用户登录时运行”,指定用户的帐户密码。我建议使用完整路径定义日志文件,如
设置“logf=Full\path to\confirm.Log”
否则,日志文件的成功创建取决于当前工作目录,而当前工作目录很可能与按计划任务运行时的目录不同。日志文件的目录必须允许为任何用户创建文件。只是两者都做了。“仅当用户登录时运行”适用于我的帐户。但从长远来看,这不可能是我的账户。而且我不会每次运行都登录到服务器。有没有其他方法可以在不需要当前登录帐户的情况下强制其运行?谢谢你的帮助!
   Action = Start a program
   Program / Script = "C:\Progra~2\PathToFiles\batch.bat"
   Start in = C:\Progra~2\PathToFiles\
 test-start
 test-finish