如何编写FTP上传和下载脚本

2024-02-18

我正在尝试制作一个批处理文件来将文件上传到 FTP 服务器。 如果我手动输入它,它可以正常工作,但是当我运行批处理文件时,它会在连接后停止......它说:

connected to domain.com.

220 microsoft ftp server

User(domain.com:(none)):

然后就没有别的了。这里发生了什么?

下面是我的批处理文件:

ftp www.domainhere.com

user useridhere

passwordhere

put test.txt

bye

pause

想要按照原发帖者想象的方式编写 FTP 会话脚本是一个合理的想法,而且就是这样的事情Expect https://en.wikipedia.org/wiki/Expect会有所帮助。 Windows 上的批处理文件无法执行此操作。

但您可能会发现使用 PowerShell 编写 FTP 交互脚本比执行 cURL 或 Expect 更容易。这是一种不同的模型,因为您不是直接编写要发送到 FTP 服务器的文本脚本。相反,您将使用 PowerShell 来操作为您生成 FTP 对话的对象。

Upload:

$File = "D:\Dev\somefilename.zip"
$ftp = "ftp://username:[email protected] /cdn-cgi/l/email-protection/pub/incoming/somefilename.zip"

"ftp url: $ftp"

$webclient = New-Object System.Net.WebClient
$uri = New-Object System.Uri($ftp)

"Uploading $File..."

$webclient.UploadFile($uri, $File)

下载:

$File = "c:\store\somefilename.zip"
$ftp = "ftp://username:[email protected] /cdn-cgi/l/email-protection/pub/outbound/somefilename.zip"

"ftp url: $ftp"

$webclient = New-Object System.Net.WebClient
$uri = New-Object System.Uri($ftp)

"Downloading $File..."

$webclient.DownloadFile($uri, $File)

您需要 PowerShell 来执行此操作。如果您不知道,PowerShell 是一个类似于 cmd.exe 的 shell,它运行您的 .bat 文件。但 PowerShell 运行.ps1文件,而且功能更强大。 PowerShell 是 Windows 的免费附加组件,并将内置于未来版本的 Windows 中。在这里获取 http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx.

Source: http://poshcode.org/1134 http://poshcode.org/1134

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何编写FTP上传和下载脚本 的相关文章

  • 在结果中只显示一列?

    这是一个简单的问题 但如何在下面的代码中选择特定的列 我只想显示 时间 列 而不显示其他任何内容 我尝试输入 FORMAT TABLE TIME 但它只是多次填充 TIME 而没有实际显示时间 server event Get Conten
  • 使用 PowerShell 检查 AD 中是否存在组

    我想为该组创建代码来检查该组是否存在 但是 我无法开始工作 因为它成功地将用户和组的部分成员仅添加到一个组中 而不是其他组 因为我设法在活动目录中创建一个组并从 csv 中读取 这是我的代码和结果 似乎在成功添加用户并添加组成员后我总是收到
  • 使用 Python 了解何时已从 FTP 源完全接收文件

    我正在使用 Python 开发一个执行以下操作的应用程序 监视特定目录并监视文件 转移到它 文件完成传输后 运行一些 文件上的外部程序 我开发这个应用程序的主要问题是知道文件何时完成传输 据我所知 该文件将通过 SFTP 传输到特定目录 P
  • 在 Array Powershell 中获取新的附加值

    for Get All Files from the Folder FolderItems Get PnPFolderItem FolderSiteRelativeUrl FolderURL ItemType File Write Host
  • Try Catch 在 Powershell 脚本中不起作用

    我似乎无法让这个 try catch 工作 我确信这很简单 但此刻我的大脑太煎熬了 请帮忙 param String RemoteServicesVMs VmThatThrowsError function getWinServiceSta
  • 如何将命令行参数传递给 rake 任务

    我有一个 rake 任务需要将一个值插入到多个数据库中 我想从命令行或从another耙任务 我怎样才能做到这一点 您可以通过向任务调用添加符号参数来指定 rake 中的形式参数 例如 require rake task my task a
  • 如何使用 Get-ChildItem 仅获取目录?

    我正在使用 PowerShell 2 0 我想通过管道输出某个路径的所有子目录 以下命令输出所有文件和目录 但我不知道如何过滤掉文件 Get ChildItem c mypath Recurse 我尝试过使用 Attributes获取属性
  • 如何从 powershell 中设置 bash 的环境变量?

    使用powershell我该如何设置 https askubuntu com q 1205227 45156 the 环境 https stackoverflow com q 5327495 262852变量 这里 特别 https sta
  • 如何使用 R 或 PowerShell 从文本文件中提取数据?

    我有一个包含如下数据的文本文件 This is just text Username SOMETHI C Text Account DFAG Finish time 1 JAN 2011 00 31 58 91 Process ID 202
  • Linux命令列出所有可用命令和别名

    是否有一个 Linux 命令可以列出该终端会话的所有可用命令和别名 就好像您输入 a 并按下 Tab 键一样 但针对的是字母表中的每个字母 或者运行 别名 但也返回命令 为什么 我想运行以下命令并查看命令是否可用 ListAllComman
  • 在powershell中检查文件是否可读且正常

    我是 powershell 新手 我想检查文件是否可读且正常 在 unix 中 我们可以使用 f 和 r 在一行中完成此操作 例如 以下 shell 脚本函数接受文件名作为参数并检查文件的可读性和规律性 与此等效的 powershell 是
  • 如何在powershell中将一个大文本文件拆分为多个文件

    你好 我有一个像这样的大文本文件 BIGFILE TXT COLUMN1 COLUMN2 COLUMN3 COLUMN4 COLUMN5 COLUMN6 COLUMN7 COLUMN8 11 24 2013 50 67 51 22 50 6
  • PowerShell 和 StringBuilder

    我是 PowerShell 新手 但熟悉 NET 类 我在用System Text StringBuilder在 PowerShell 脚本中 脚本是这样的 Function MyStringFunc String line r New O
  • NLTK:包错误?朋克和泡菜?

    基本上 我不知道为什么会收到此错误 只是为了获得更多图像 这里有一个代码格式的类似消息 由于是最新的 该帖子的答案已经在消息中提到 Preprocessing raw texts LookupError Traceback most rec
  • 如何从linux命令行运行.exe可执行文件? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在 Windows 中有一个 abc exe 可执行文件 我可以使用 DOS 命令提示来执行此应用程序 并为其提供一些运行时变量 我想从
  • 使用变量更改批处理文件中的目录

    这是问题 set Pathname C Program Files cd Pathname pause 正如我所期望的 上面的内容不会更改目录 有人可以告诉我为什么吗 The set语句不会按照您期望的方式处理空格 你的变量确实被命名了Pa
  • PowerShell 模块中忽略 Write-Verbose

    我希望使用Write Verbose脚本和函数中的命令行开关 它在脚本 ps1 文件中按预期工作 但在模块 psm1 文件中则不然 该 commandlet 在模块中被忽略 运行以下脚本 PS gt scaffold ps1 verbose
  • FileInfo.BaseName 存在于 PowerShell 中,但不存在于直接 .NET 中

    为什么在 NET 中System IO FileInfo对象没有BaseName属性 但我可以通过 PowerShell 使用该属性 例如 FolderItems Get ChildItem Path C Where Object isno
  • Powershell日期类型无法找到

    我正在尝试使用PowerShell连接virustotal API 代码来自virustotal网站 我得到 无法找到类型 System Security Cryptography ProtectedData 错误信息 代码如下 funct
  • Powershell:复制时自动更改文件属性

    我有一个只读文件的文件夹 当我将这些文件之一复制到测试位置时 我希望能够复制它们而不保留其原始属性 我可以做到这一点 但这很长 copy item srcfilefullname destfilefullname set itemprope

随机推荐