2016-06-21 1 views
0

私はファイルを呼び出すためにエターグ番号を取得しようとしています。エタグ番号をテキストファイルに保存する必要があります。 PowerShell v2.0でこの作業が必要なので、サポートされていないため、Invoke-WebRequestメソッドを使用することはできません。私はジャンク出力を取得していますがPowershell Rest et call for etag

$response = New-Object System.Net.WebClient 
$etag = $response.DownloadString($URI) 

-

$response = Invoke-WebRequest -Uri $uri 
$response | select @{n='ETag';e={ $_.Headers.ETag }} 

私はドットネットメソッドを使用しようとしています。私は $etag実行したときの出力の例は、 -

PK ÁMÕHÖnÖ™ª ? SelfDiscovery.ps1í]{sǑ￯ê¾ÃfÉD€+ñCË¡)*VE¹ 
Ú¼*ÓÅPBø)ó~õ»ôc3³;»X€ A-§P ÅÅlwO?~Ý=3ýßÿÃ[email protected]úp 
Ç°çøÂ%þìâ5ú¤#ÀŒá?á?øMwìÁ{¼šâ¿RgDð_§øJà:H…®_âßü”èñ>úý;~N£ˆ[¯¥þ•àH¢) 
òtrò•3¤©[xíU†³ð Z]¼—FwP¾CŸZ9ºH{ÄŸž3âØÃßtE¸ßJCÒöñÕã7qv5ò¯’D#ä8à‘–ËÖÐÿ{ 
È’é'ßãß)s㿈ï¥÷¹¯]C|÷'s½d]Ùñ$±Ðë9<í¼ÏXo]¶Þ9¼3¥;š¬'EÞòU²œ¯Û##I2b=¨ÝÖXWøi 
ÌΘôSôYßà»ÛðÒÈ°›8CÒâä÷O¼ÒHqOás8DY†(=Ñëà¿{ì‹'8¦ /YV±Ñ¶ÜöàçØGžOñ“-ØÅÏ 
O²Wø×ðóu–hïNà_,×>ë—fÜÌHõ(T‡?ç5ØÀ÷!ê3Ëcÿ¾Rü×.Ïù©Y¿»Hï€yßLø¿4úî°íò2Ð 
˜Ä¼Êµ–ˆî¿ñüù5ò:á»H»#ÃkÈÔ$^5V¬7$²ñü3Gß ¡]èNñˆ-ô®1ÇçqBhÐ<O9ÂFï(š«Ã0µ†áEöq 
Qãx¡\rô•ïwl¯¼ëbá<]ÚʯÇÿ­ùCNÊEH‘¥yPˆÝ-ƒùÕd•(žMÆpU•G§HGø:幟!Å'ð|_àÕ6^=Æ 

を誰もが前にこれを見ていますか?私は何が間違っているのかわからない、私はAPI呼び出しを行う前にこのメソッドを使用しました。

アップデート - トニのおかげで、私は、ファイルが

$response = New-Object System.Net.WebClient 
$etag = $response.DownloadFile($URI,$file) 

をダウンロードし得ることができますコメントしかし、どのように私はのETagを得るのですか?私はダウンロードされたetagと呼び出しetagの比較を達成しようとしています。異なる場合は、ダウンロードして抽出します。

+1

最初の「PK」は、圧縮された(zip)出力を示しています。それを解凍する必要があります。これは文字列からは不可能なので、代わりに 'DownloadData'または' DownloadFile'を使用してください。ここに役立つ「マジックマーカ」のリストがあります:https://en.wikipedia.org/wiki/List_of_file_signatures – TToni

+0

@TToniありがとう、少し助けて解決してくれたので、ファイルをダウンロードできるようにする必要がありましたfrom - [Technet](https://social.technet.microsoft.com/Forums/scriptcenter/en-US/00bd2230-ec02-4a91-940c-3ad252220a08/using-powershell-to-download-multiple-video-from- a-website?forum = winserverpowershell) –

答えて

2

etagはHTTPヘッダーに格納されています。WebClient.DownloadStringメソッドでは、ファイルをダウンロードして変数$etagに格納しています。代わりに、WebResponseオブジェクトを使用してレスポンスヘッダーにアクセスしてみてください。

$request = [System.Net.HttpWebRequest]::Create($Uri) 
$response = $request.GetResponse() 
$etag = $response.Headers["ETag"] 
+0

ありがとうございました。それは完全に機能します。 Powershell 2.0はそれを少しでも研究するのを難しくしています。 –