我尝试使用FTP将文件上传到FTP服务器。我在网上找到了以下脚本,但我无法使用它。
$UserName = 'username'
$Password = 'password'
$LocalFilePath = 'c:\FolderName\x.txt'
$RemoteFileName = 'x.txt'
$ServerName = 'my.ftpserver.co.uk'
$webclient = New-Object System.Net.WebClient
$webclient.Credentials = New-Object System.Net.NetworkCredential($UserName, $Password)
#Connect to FTP
$uri = New-Object System.Uri(“ftp://$ServerName/$RemoteFileName”)
write-host $uri
#upload as file
$webclient.UploadFile($uri, $LocalFilePath)
但是当我运行这个时,我收到以下错误:
Exception calling "UploadFile" with "2" argument(s): "An exception occurred during a WebClient request."
At line:21 char:22
+ $webclient.UploadFile <<<< ($uri, $LocalFilePath)
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
有人能指出我正确的方向吗? 我可以从我的PC上使用Filezilla等进行连接,因此它不会被防火墙或任何东西阻挡,
答案 0 :(得分:0)
测试了你的脚本并且运行正常,只有我能够重现你的错误才能将$ LocalFilePath指向一个不存在的文件。你能尝试一下:
Test-Path($LocalFilePath)
看看它是否返回True?
答案 1 :(得分:0)
从你的评论和我在问题中看到的代码中,问题可能只是你有聪明的引语。它将是您的编码编辑器的产品,或者是将代码复制并粘贴到您的环境中的源代码。你需要注意这些事情。假设路径正确形成或许这只是你的问题。
智能引号
$uri = New-Object System.Uri(“ftp://$ServerName/$RemoteFileName”)
适当的双引号
$uri = New-Object System.Uri("ftp://$ServerName/$RemoteFileName")
第二个示例中的引号是您应该使用的引号。