首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >psftp在本地随机失败:无法打开

psftp在本地随机失败:无法打开
EN

Stack Overflow用户
提问于 2015-04-21 15:57:58
回答 1查看 8.2K关注 0票数 0

psftp put大约有1%的时间失败,例如

本地:无法打开d:\WorkPath\F_56MTV56201504201707224380.csv

  1. 调用应用程序需要对存在文件的目录路径和上传文件本身的权限。
  2. 上传文件所在的目录路径不被锁定。见第(1)项
  3. 要上载的csv文件是在C++中创建的,函数fclose()在关闭文件时不返回EOF。
  4. 目录上传路径已被排除在防病毒之外。
  5. 100份上载文件中有99份按预期完成
  6. 通过调用同一个批处理重新上载失败的上载文件可以正常工作。
  7. 解决方案是多线程的

在这一点上,我唯一能看到的不同之处是使用带有本地文件名的lcd命令,而不是使用完全限定的路径,但理论上,这不应该改变任何事情,或者我遗漏了什么吗?

示例批处理文件:

代码语言:javascript
运行
复制
"D:\\Program Files\\ApplicationPath\\psftp.exe" ^
    1.2.3.4 -l username -pw password -batch -bc ^
    -b "d:\\\\WorkPath\\\\\EXMSP35201504210946233890.script" ^ 
    > "d:\\\\WorkPath\\\\\EXMSP35201504210946233890.script.log" 2>&1

示例脚本文件:

代码语言:javascript
运行
复制
put d:\\\\WorkPath\\\\EXMSP35201504210946233890.csv
bye

D:看起来像是附加到服务器上的物理磁盘,但是服务器,2008R2是在VMWare虚拟平台上的。

EN

回答 1

Stack Overflow用户

发布于 2015-04-22 05:38:09

使用一些WinAPI记录仪来找出底层CreateFile WinAPI函数调用失败的原因。

或者使用具有更详细错误消息的不同的SFTP客户端。

例如,等效的WinSCP脚本是:

代码语言:javascript
运行
复制
winscp.com /command ^
    "option echo on" ^
    "open sftp://username:password@1.2.3.4/" ^
    "put d:\WorkPath\EXMSP35201504210946233890.csv" ^
    "exit" > d:\WorkPath\EXMSP35201504210946233890.script.log

使用WinSCP,您将得到一个错误,如:

文件或文件夹‘d:\WorkPath\EXMSP352012014210946233890.csv’不存在。 系统错误代码: 3。 系统找不到指定的路径。

看一个WinSCP脚本简介

(我是WinSCP的作者)

您不应该在路径中使用双反斜杠。尽管Windows允许这样做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29777363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档