batch-file - 使用 SQL Server 代理作业的 WinSCP 批量传输
问题描述
我有一个 .bat 文件:
执行 WinSCP(调用脚本 txt)并通过 SFTP 传输文件。它还归档传输的文件。
我的问题是当我双击 .bat 文件时它工作得很好。但是当我在 SQL Server 代理作业中执行它时,它会归档文件但不会将文件传输到 SFTP。
我在这份工作的历史上完全没有错误。
我觉得它没有执行 WinSCP 或没有打开 txt 脚本。我检查了权限,它在所有文件和文件夹中都显示正常...
选中所有用户对所有文件和相关文件夹的完全控制。尝试检查我的语法。
"C:\Program Files\WinSCP\WinSCP.exe" /command "option confirm off"
/console /script="C:\Program Files\WinSCP\LocalToRemote.txt"
解决方案
您应该将/log=C:\path\to\winscp.log
开关添加到 WinSCP 命令行以查看发生了什么。
在极少数情况下,错误非常严重,甚至没有生成日志文件,您应该捕获 WinSCP 控制台输出。你不能这样做winscp.exe
,你需要这样做,winscp.com
无论如何你都应该使用它。
"C:\Program Files\WinSCP\WinSCP.com" ^
/log=C:\path\to\winscp.log ^
/command "option confirm off" ^
/script="C:\Program Files\WinSCP\LocalToRemote.txt" > C:\path\to\winscp.out
在您向我们展示日志之前,我只能将您指向 WinSCP 常见问题解答:
我的脚本在手动执行时工作正常,但在由 Windows 调度程序、SSIS 或其他自动化服务运行时失败或挂起。我究竟做错了什么?
最常见的问题是FAQ中列出的第一个问题:
最好的办法是让 WinSCP GUI为您生成脚本/命令行/批处理文件模板,其中包含脚本真正可移植所需的所有详细信息。
推荐阅读
- mysql - 如何将颤振连接到本地 mysql 数据库
- reactjs - 为什么是的字符串验证在它是一个对象时不会抛出错误?
- tensorflow - 如何在 Tensorflow 对象检测 API 中查找边界框坐标
- sql-server - 在外部数据源“(null)”中指定了错误或不可访问的位置
- reactjs - 按钮 onClick 事件未更新组件状态
- vhdl - 使用 vhdl-2008 分析、详细说明、运行和转储 vcd 文件的 GHDL 脚本?
- javascript - 无法读取 mdbreact 中未定义的属性“0”
- javascript - 如何使用 qunit 在 TypeScript 中将函数参数声明为“QUnit”类型?
- android - 在调试设备上测试时显示 UPDATE_NOT_AVAILABLE 的应用内更新 API
- nix - 向 Nix 询问有关给定包的元数据