PowerShell で Redmine のチケットNoのフォルダを作成して配下に URLショートカット と PDF を作成するv4
以前、作成したスクリプトを定期的に改良しており、気が向いたので記事にする。
v1→v4となる。
前提条件
- Windows 10 Professional
- $PSVersionTable PSVersion=5.1.18362.1171
- ファイルを選択し右クリック → PowerShell で実行
- チケットNo.は # を含む(#99999)
- RedmineのAPIアクセスキーは環境変数 RedmineApiAccessKey に記載
create_redmine_folder_v4.ps1
# Get Ticket Number $ticketNo = Get-Clipboard -Format Text if (($null -eq $ticketNo) -or (0 -ne $ticketNo.IndexOf("#"))) { $ticketNo = Read-Host "Please enter a Redmine ticket number" } $ticketId = $ticketNo.remove(0, 1) $ticketUrl = "http://redmine.es.occ.co.jp/issues/$ticketId" $apiAccessKey = $env:RedmineApiAccessKey # Get Response $response = Invoke-RestMethod -Uri "$ticketUrl.json?key=$apiAccessKey" $ticketFolder = "$PSScriptRoot\$ticketNo $($response.issue.subject)" # Create Folder New-Item $ticketFolder -ItemType Directory -Force # Create File New-Item "$ticketFolder\description.txt" -ItemType File -Value $response.issue.description -Force New-Item "$ticketFolder\comment.txt" -ItemType File -Force # Create Shortcut $wShell = New-Object -ComObject WScript.Shell $shortcut = $wShell.CreateShortcut("$ticketFolder\$ticketNo.url") $shortcut.TargetPath = ($ticketUrl) $shortcut.Save() # Create PDF (New-Object System.Net.WebClient).Downloadfile( "$ticketUrl.pdf?key=$apiAccessKey", "$ticketFolder\$ticketNo.pdf")