PowerShellでSystem.Net.WebClient.DownloadFileAsync利用時の注意点(備忘録)2013-03-28PowerShellでSystem.Net.WebClient.DownloadFileAsync利用時の注意点(備忘録)PowerShell昨夜、勉強になったので備忘録に。PowerShellではしょっちゅう.NETを利用します。その中でも、System.Net.WebClientは、サイトのHTMLを取得する際に便利なので利用しがちです。DownloadFileとDownloadFileAsyncの利用時の違いがイマイチピンときて無かったのが少し解消したので備忘録に。DownloadFile利用例まずは利用例から。$ext))}.NETライクで、パイプを噛ませてないので寂しいのですが。これで、10000回、対象サイトのHTMLを取得して、自身のD:\exampleにダウンロード、ファイル名に何回目のファイルかをつけてくれます。$()は部分式ですが、良く使いますね。DownloadFileは、同期方式です。同期の場合は、System.Net.WebClientで一つずつの処理を終わるまで次のDownloadFileメソッドを実行しないので生成は一回でいいとなります。DownloadFileAsync利用例まずは利用例から。$ext))}先ほどとの違いは、New-ObjectでのSystem.Net.WebClientインスタンス生成が都度行われている点です。これは、DownloadAsyncが実行後すぐにComplete扱いになるため、接続分のインスタンスを生成する必要があります。$ext))}非同期の場合は、System.Net.WebClientを随時生成しないと以下のエラーが2つめのダウンロード以降出てきます。操作をサポートしません。"実行速度それはもう、DownloadFileAsyncの方が早いです。DownloadFileAsyncなら、必要数のインスタンス生成分だけの時間だけロック。ダウンロードは非同期に。DownlaodFileだと、インスタンスの生成は一個ですが、ファイルダウンロード中ロックされます。結果は、一目瞭然ですね。DownloadFileAsyncの場合、現在ダウンロード中かどうかの判断は......単純にこれでいいか...。メソッドを使用すると、未完了の非同期操作をキャンセルできます。スク...2018-05-28PowerShellっぽく陸上自衛隊のイラク派遣日報をまとめてダウンロードしてみる面白い記事があったので、私もやってみます。(9)トップへ戻るスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。