ページ

title

告発\金沢地方検察庁\最高検察庁\法務省\石川県警察御中
弁護士と裁判官が共同で確定させた傷害・準強姦被告事件判決の再捜査要請に係る石川県警察珠洲警察署提出書面の情報公開

殺人未遂事件幇助の被告訴人: 木梨松嗣弁護士(金沢弁護士会)、岡田進弁護士(金沢弁護士会)、長谷川紘之弁護士(金沢弁護士会)、若杉幸平弁護士(金沢弁護士会)
名誉毀損罪の被告訴人: モトケンこと矢部善朗弁護士(京都弁護士会)、小倉秀夫弁護士(東京弁護士会)
市場急配センター株式会社 石川県金沢市駅西本町5丁目10番20所在
作成管理者: 石川県鳳珠郡能登町字宇出津 廣野秀樹
金沢地方検察庁御中

2020年10月10日土曜日

* Powershellでデジカメ・スマートフォンの写真の撮影日時を取得し,後方参照で文字列置換

* Powershellでデジカメ・スマートフォンの写真の撮影日時を取得し,後方参照で文字列置換

:CATEGORIES: Powershell

```
(Get-ChildItem -Recurse | ? { ! $_.PSIsContainer } | Measure-Object).Count

$file_path = "C:\Users\(ファイルの絶対パス)\2002-12-29_163215_告発事件一件記録(写真資料・撮影日時).jpg"

[Reflection.Assembly]::LoadWithPartialName("System.Drawing") | Out-Null
$img = $null
$img = New-Object Drawing.Bitmap($file_path)

$date = ($img.PropertyItems | Where-Object{$_.Id -eq 306}).value
$date = [Text.Encoding]::ASCII.GetString($date)
$date = $date -replace "(....):(..):(..) (..):(..):(..)", '$1-$2-$3_$4$5$6'
```

PS D:\> echo $date
2002-12-29_163215

参考:
デジカメ、スマートフォンなどで撮影した画像、動画ファイルをリネーム後月ごとのフォルダに移動するスクリプト · GitHub https://gist.github.com/ebibibi/4175880?fbclid=IwAR3q7utypxoxlekjeQBTI-CMgWhg555FXrMPV7pvPDLIYkkLzgfQL6knUqY
後方参照はシングルクォートで - コンピュータってすごいらしい https://kyasmt.hatenablog.com/entry/20091215/1260863095

 「$date.Replace('0', 'x').Replace('2', 'y').Replace('1', 'z')」という形式での正規表現,後方参照はできないみたいです。少し調べたところ,次のページによると,-replaceは,オプション指定ではなく演算子のようです。

PowerShell - 正規表現 | powershell Tutorial https://sodocumentation.net/ja/powershell/topic/6674/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE

 「 [regex]::Replace($date, "(....):(..):(..) (..):(..):(..)", '$1-$2-$3_$4$5$6')」というやり方もできました。こちらの方が他のプログラム言語に近い書式で,可読性が良さそうに思います。



0 件のコメント:

コメントを投稿