使用PowerShell / WebClient中的绝对路径从FTP服务器复制文件

时间:2018-03-24 11:28:52

标签: .net powershell ftp webclient

尝试使用PowerShell脚本将文件从HP-UX复制到我的Windows计算机。

请在下面找到我的脚本。

$File = "d:\copiedfile.txt"
$ftp = "ftp://my_Unix_Domain_name/tmp/sourceFile.txt"
"ftp url: $ftp"
$webclient = New-Object System.Net.WebClient
$uri = New-Object System.Uri($ftp)
"Downloading $File..."
$webclient.DownloadFile($uri, $File)

可以通过FTP连接,但是文件没有复制到我的目标目录。

我收到错误:

  

远程服务器返回错误:(550)文件不可用(例如,找不到文件,无法访问)。

不确定,它有什么问题。

我可以使用命令行ftp下载文件:

ftp> get /tmp/text.sh
200 PORT command successful.
150 Opening ASCII mode data connection for /tmp/test.sh (71 bytes).
226 Transfer complete.
ftp: 76 bytes received in 0.00Seconds 76000.00Kbytes/sec.
ftp>

1 个答案:

答案 0 :(得分:1)

FTP的实现(WebClientFtpWebRequest)不认为主机名和文件路径之间的斜杠是文件路径的一部分。

因此,如果您需要在URL中使用文件的绝对路径(如/tmp/sourceFile.txt),则必须添加另一个斜杠:

$ftp = "ftp://my_Unix_Domain_name//tmp/sourceFile.txt"