You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins中WinSCP偶现WinSCP.ini被占用无法打开报错解决求助

错误根因

报错核心是多个WinSCP进程同时竞争全局默认配置文件C:\Program Files (x86)\WinSCP\WinSCP.ini的读写权限,触发了系统文件锁限制。你当前Jenkins任务顺序执行两个WinSCP脚本,当前一个进程还未完全释放INI文件锁时,后一个进程就启动尝试访问该文件,就会触发该偶发错误。

解决方案

按照优先级从高到低排序:

  • 【最优解】给WinSCP启动命令添加/ini=nul参数,完全禁用INI文件读写,所有配置直接读取你脚本内的参数即可。修改后的启动命令如下:
    C:\"Program Files (x86)"\WinSCP\winSCP.com /ini=nul /console /script="%FTPScriptDir%%FTPScriptFile%"
    
    你当前的所有会话、传输配置都已经写在.ftp脚本内,没有依赖INI文件中的配置,修改后不会影响原有传输逻辑,同时从根源避免了文件锁冲突。
  • 给每个脚本指定独立的INI文件,不共用全局配置。你可以将默认WinSCP.ini复制到每个Jenkins任务的工作目录下,启动时指定私有INI路径:
    C:\"Program Files (x86)"\WinSCP\winSCP.com /ini=%WORKSPACE%\custom_winscp.ini /console /script="%FTPScriptDir%%FTPScriptFile%"
    
  • 在Jenkins的两个批处理步骤之间添加1-2秒的等待延迟,确保前一个WinSCP进程完全退出、释放文件锁后再启动下一个任务,延迟命令如下:
    timeout /t 2 /nobreak >nul
    
  • 将两个传输逻辑合并到同一个WinSCP脚本中,单次启动WinSCP进程完成两次目录的传输操作,彻底避免多进程竞争问题。

内容的提问来源于stack exchange,提问作者Victor Leclerc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 15:48:04