通过StackOverflow和其他地方的各种不同帖子,我能够组合一个FTP上传文件的PowerShell脚本,它运行良好。但是我想为它添加更多的冗长。请参阅以下代码:
foreach ($file in $uploadfiles)
{
# create the full path to the file on remote server (odd but okay!)
$ftp_command = $ftp + $file
# for debugging
#$ftp_command
# create a new URI object for the full path of the file
$uri = New-Object System.URI($ftp_command)
#for debugging
#$uri
# finally do our upload to the remote server - URI object, full path to local file
#$responseArray = $ftpclient.UploadFile($uri,$file.Fullname)
$result = $ftpclient.UploadFile($uri,$file.Fullname)
if ($result) {
$file.Fullname + " uploaded successfully"
} else {
$file.Fullname + " not uploaded successfully"
}
}
基本上,文件上传后我想查看是否成功。上传文件应该返回一个字节数组(http://msdn.microsoft.com/en-us/library/36s52zhs(v=vs.80).aspx; 一个Byte数组,其中包含来自资源的响应主体。)。我是powershell的新手,所以这可能就是我的问题所在,但对于我的生活,我无法从$ result得到任何结果,所以我可以测试。是否有可能服务器没有返回任何内容,或者我只是没有正确访问/设置字节数组?我尝试了各种各样的东西,但还没有想出什么。
谢谢,
答案 0 :(得分:0)
我不会在您开启PowerShell 2.0的情况下使用$ result,您可以使用try / catch部分。
try
{
$ftpclient.UploadFile($uri,$file.Fullname)
}
catch [System.Net.WebException]
{
# here $_ gives you the exception details
}