PowerShell で Redmine のチケットNoのフォルダを作成して配下に URLショートカット と PDF を作成する

Redmine でタスク管理を行っている。
対象チケットのフォルダをローカルに作成して、そこに必要なファイルを置いて作業している。

毎回、チケットNoのフォルダを作成して、その配下にチケットへのショートカット、チケットのPDFの取得とかしているので、一気にやっておく。
特に PDF はチケットを更新すると、ローカルのモノが古くなるので、スクリプトでサクッと取得できると助かる。

前提条件

  • Windows 10 Professional
  • $PSVersionTable PSVersion=5.1.15063.1387
  • ファイルを選択し右クリック → PowerShell で実行
  • チケットNo.は # を含む(#99999)

create_redmine_folder.ps1

$ticketNo = Read-Host "RedmineのチケットNo.を入力して下さい。"

$ticketFolder = "$PSScriptRoot\$ticketNo"
$ticketId = $ticketNo.remove(0, 1)
$ticketUrl = "http://{ドメイン名}/issues/$ticketId"
$apiAccessKey = "{APIアクセスキー}"

New-Item $ticketFolder -ItemType Directory -Force

$wShell = New-Object -ComObject WScript.Shell
$shortcut = $wShell.CreateShortcut("$ticketFolder\ショートカット_$ticketNo.url")
$shortcut.TargetPath = ($ticketUrl)
$shortcut.Save()

Invoke-WebRequest -Uri "$ticketUrl.pdf?key=$apiAccessKey" -OutFile "$ticketFolder\$ticketNo.pdf"

スパゲッティを作る?

スパゲッティを入れてレンジでチンするだけでいい容器があったので買ってやってみた。
こういうのテンションあがるなぁー。

  • レンジ調理容器 パスタ&ベジタブル 198円
  • そのままレンジ保存容器 正方形 198円

上記は初期投資みたいなものなんだけど、500円以内で買えちゃうんだ。
凄い。

ポポロスパは1人前100gなので、だいたい1食分200円以内ですね。
ソースは買ってますが、余裕が出てきたら作っていきたいな。

レンジ調理容器 パスタ&ベジタブル に ポポロスパ を入れて、レンジで12分。
そのままレンジ保存容器 に タスマニアボロネーゼ を入れて、レンジで1分30秒。
これで出来上がり。
もはや調理していない。

あと、ここでも値段が見れますね。

イオンスタイルホーム
https://shops.aeonsquare.net/shop/c/ca119

ハムサンドを作る

改めて朝食を作っていきたいので、ちゃんと値段を計算する。

  • 食パン(8枚)200円
  • ロースハム(4セット)280円
  • スライスチーズ(7枚)260円
  • トマト(4個)350円

合計 1090円 で 4日分なので1日あたり 280円。

これにヨーグルト(4セット)250円 を足しても1日あたり 335円。
フルーツも取り入れたい。
どんどん値段が上がっていきそう。

あと、利用するイオンの値段をネットで見れるの凄い便利。

イオン南風原
https://www.aeonnetshop.com/shop/c/c10000000011230/

ちゃんと日記に書きだすと、値段とかわかっていいですね。

PowerShell で Basic認証 のある URL の内容をファイルとして保存する

Basic認証 のある URL から JSON形式 のファイルを取得したくて作成。

前提条件

  • Windows 10 Professional
  • $PSVersionTable PSVersion=5.1.15063.1387
  • ファイルを選択し右クリック → PowerShell で実行

get_basic_auth_url_content.ps1

$user = "{ユーザ名}"
$pass = ConvertTo-SecureString "{パスワード}" -AsPlainText -Force

$credential = New-Object System.Management.Automation.PSCredential $user, $pass

Invoke-WebRequest -Uri "{URL}" -Credential $credential -OutFile "{ファイル名}"