batch-file - WinSCP - 从 SFTP 服务器下载文件到网络位置,然后删除
问题描述
我需要编写一个 WinSCP 脚本或批处理文件来下载远程 SFTP 文件夹的内容,删除内容,然后上传到映射的网络文件夹。我知道如何编写脚本的登录部分。但我对具体的命令行应该是什么样子感到困惑。从我读到的命令脚本下载和删除文件是这样的:
get -delete -transfer=binary *
我没有得到的部分是上传到网络文件夹命令。我理解put
的是WinSCP上传命令操作符。但是我如何将它与网络文件夹位置文件一起使用应该上传到?另外,这可以在批处理文件中编写脚本,还是需要单独编写批处理文件和脚本?谢谢!
解决方案
“上传”到映射的网络文件夹不是 WinSCP 的工作。映射的网络文件夹充当本地驱动器。一个普通的 Windowscopy
命令就可以了。因此,首先进行 WinSCP 下载,然后将文件复制(实际上并不称为上传)到网络驱动器。
winscp /ini=nul /command ^
"open sftp://user:password@example.com/" ^
"get -delete /sftp/path/* c:\local\drive\path\" ^
"exit"
copy c:\local\drive\path\* n:\mapped\network\drive\path\
但是,如果您不需要本地文件,您可以让 WinSCP 将文件从 SFTP 文件夹直接下载到映射的网络驱动器:
winscp /ini=nul /command ^
"open sftp://user:password@example.com/" ^
"get -delete /sftp/path/* n:\mapped\network\drive\path\" ^
"exit"
推荐阅读
- android - 如何在 Kotlin 中调用 Method?
- unit-testing - 默认失败测试(Intellij IDEA)
- android - CollapsingToolbar contentScrim 不工作
- asp.net-core - .NET Core 构建包含我不使用的 dll 文件 (Azure DevOps)
- c# - 在 Windows Server 2008 R2 上使用 IIS7.5 通过 TLS1.2 发出请求
- twitter-bootstrap - 如何使用 jumbotron bootstrap 在 1 行中制作 5 列?
- reactjs - 对象映射不是函数
- amazon-web-services - 如何使用 AWS Glue 在 DynamoDB 中仅保留临时数据
- embedded - 嵌入式主机接口层,可与 I2C、SPI 和 UART 等多种串行协议一起使用
- apache-spark - 无法从 spark shell 在 hive 中为 twitter 数据创建表