CodePlexアーカイブから配布ファイルを取得する
以前、マイクロソフトの穂スティングサイトCodePlexから配布ファイルを取得する方法について書いたんですが、結構面倒くさい手順だったので、powershellスクリプトを作りました。巨大アーカイブをダウンロードし、zipを展開してできたフォルダ直下に次のスクリプトを書いて実行すれば、自動で必要なzipが生成されます。吸い出し.ps1#Json読み出し関数 ネタ元はhttps://stackoverflow.com/questions/28077854/powershell-2-0-convertfrom-json-and-convertto-json-implementation<#function ConvertTo-Json20([object] $item){ add-type -assembly system.web.extensions $ps_js=new-object system.web.script.serialization.javascriptSerializer return $ps_js.Serialize($item)}#>function ConvertFrom-Json20([object] $item){ add-type -assembly system.web.extensions $ps_js=new-object system.web.script.serialization.javascriptSerializer #The comma operator is the array construction operator in PowerShell return ,$ps_js.DeserializeObject($item)}$Global:PsScriptRoot=split-path -parent $MyInvocation.MyCommand.Definition$Latest =@{ModifiedDate=[datetime]"0001/01/01"}$JsonFile ="$Global:PsScriptRoot\releases\releaseList.json"(ConvertFrom-Json20 ( gc $JsonFile ))|%{ $date =[datetime]$_.ModifiedDate if ( !$_.Files ){ return } if ( $date -gt $Latest.ModifiedDate ){ $Latest =$_ }}if (!$Latest.Files){ throw "不明なエラー"}$Latest.Files|%{ $FileName =$_.FileName $Url =$_.Url $Path =join-path "$PsScriptRoot\releases" $Url $newPath ="$PsScriptRoot\$FileName" cp $Path $newPath}