0

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 ;リソースからの応答の本文を含むバイト配列。)。私はpowershellに慣れていないので、おそらく私の問題はそこにありますが、私の人生では、 $result から何も得られないので、テストできます。サーバーが何も返さない可能性はありますか、それともバイト配列に正しくアクセス/設定していないだけですか? いろいろと試してみましたが、まだ何もわかりません。

ありがとう、

4

1 に答える 1

0

$result は、PowerShell 2.0 以降では使用しません。try/catch セクションを使用できます。

try
{
  $ftpclient.UploadFile($uri,$file.Fullname)
}
catch [System.Net.WebException]
{
 # here $_ gives you the exception details
}
于 2013-08-01T08:01:33.730 に答える