我正在尝试制作一个批处理文件来将文件上传到 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(使用前将#替换为@)