任务计划程序中WinSCP传输大JPG生成.filepart后缀问题求助
任务计划程序执行WinSCP脚本时大文件仍带.filepart后缀的解决办法
核心问题分析
问题根源有两点:
- 脚本中
-transferresumesupport参数位置错误,导致续传规则未生效 - 任务计划程序运行环境与手动执行不同,且脚本使用
/ini=nul,GUI中修改的阈值不会被读取
具体解决步骤
1. 修正脚本中的传输参数
WinSCP的命令参数必须跟随对应命令(如get),且需在脚本中明确指定续传阈值(不能依赖GUI设置)。将原脚本中的get命令修改为:
"get 92578*.jpg \"Your\\Destination\" -transferresumesupport=on -resumethreshold=204800" ^
204800对应200KB(单位为字节),可按需调整数值- 确保参数与命令在同一逻辑行(用
^换行时注意末尾不要有多余空格)
修正后的完整脚本:
@echo off "C:\Program Files (x86)\WinSCP\WinSCP.com" ^ /log="E:\Path\To\Your\WinSCP.log" /ini=nul ^ /command ^ "open sftp://username:password@ftp.example.com/ -hostkey=""ssh-rsa 4096 hostkey_value="" -privatekey=""E:\Path\To\Your\Private-Key.ppk""" ^ "cd /your_directory/" ^ "lcd E:\" ^ "get 92578*.jpg \"Your\\Destination\" -transferresumesupport=on -resumethreshold=204800" ^ "exit" set WINSCP_RESULT=%ERRORLEVEL% if %WINSCP_RESULT% equ 0 ( echo Success ) else ( echo Error ) exit /b %WINSCP_RESULT%
2. 调整任务计划程序的运行设置
- 安全选项:勾选「不管用户是否登录都要运行」,并确保任务使用的账户拥有以下权限:
- 读取WinSCP安装目录的权限
- 读写脚本涉及的本地路径(E盘、目标文件夹)的权限
- 读取私钥文件的权限
- 起始于:在任务的「操作」设置中,填写脚本所在的完整目录(例如
E:\Scripts),避免相对路径错误 - 操作参数检查:确认「程序或脚本」指向正确的
cmd.exe或直接指向你的bat脚本,参数无拼写错误
3. 查看日志排查细节
任务执行后,打开E:\Path\To\Your\WinSCP.log,搜索关键词:
resume threshold:确认阈值是否被正确设置为200KB.filepart:查看文件被添加后缀的具体原因(如传输中断、权限不足)
内容的提问来源于stack exchange,提问作者techroar
相关产品推荐
相关产品推荐

