2012-12-04 303 views
6

プロセスを自動化してインストールするために必要なファイルをダウンロードするようにセットアップしようとしています。スクリプトを実行すると、私は日曜日からそれを7つの方法を変更している、それはまだ私にエラーが発生します。"2つの引数を持つ" DownloadFile "例外:" WebClient要求中に例外が発生しました。 "

The script is 

    if (test-path $java_path) 

    { 
    Write-Output "Java already installed. Skipping script" 
    exit 0 
    } 

    else 

    { 
     $source = "http://our.server.com/java-installer.zip" 
     $destination = "c:\CHPACS" 
     $client = new-object System.Net.WebClient 
     $client.DownloadFile($source, $destination) 

     } 

私は取得していますエラーメッセージが

Exception calling "DownloadFile" with "2" argument(s): "An exception occurred during a WebClient request." 
At C:\ps_script\testjava.ps1:41 char:31 
+   $client.DownloadFile <<<< ($source, $destination) 
+ CategoryInfo   : NotSpecified: (:) [], ParentContainsErrorRecordException 
+ FullyQualifiedErrorId : DotNetMethodException 

である私が作るための関数を作成する必要がありますかこの作業は適切ですか?

はありがとう:

+7

エラーが発生した後、 '$ error [0] .Exception.ToString()'を実行して結果を投稿できますか?それはもっと詳細を与えるはずです。 – latkin

+0

エラーメッセージから、変数が$ client.DownloadFile($ source、$ destination)に渡されていないかのように見えます。私はあなたがリクエストしたものを試しましたが、追加情報は得られませんでした。 – user1846439

答えて

18

あなたがDownloadFile方法については、MSDNのドキュメントを見れば、あなたは2番目のパラメータはファイル名、ないディレクトリであることに気づくでしょう。以下のようなものにだから、あなたがあれば再定義$destination

$destination = "c:\CHPACS\java-installer.zip" 

それが動作するはずです。

ダウンロードしようとしているファイルが開いていないか、実行中であることを確認してください。この例外は、ファイルが使用中の場合に発生します。

+0

+1、私の考えを正確に。 – D3vtr0n

+0

OICは、ダウンロードと同じように、ソースと宛先の名前が同じである必要はありません。ファイルは、宛先で名前を変更することができます。それは今働く。 – user1846439

+0

本当にオアシス! – OK999

4

ダビデは+フォルダが存在するはずだと言ったのでファイル名を与えるべきです。

+1

「このフォルダは存在するはずです」という感謝の気持ちです。 –

関連する問題