今日はPCデータをバックアップするスクリプトをPowerShellで作成していました。
・・・え?OS標準のバックアップ機能使え?いや、勝手に変な形式のファイルに変換されちゃうと、ちゃんと復元されるか不安なので、そのままのファイルを別の場所にコピーするスクリプト作りました。
・・・え?アプリ制作と関係ない?いや、アプリソースコードのバックアップにもなるんで、関係はあったりします・・・
どうでも良いですが、PowerShell の Get-ChildItem や Test-Path や Copy-Item や Move-Item って、ファイル名によっては処理に失敗するんですよね。ファイル名に “]” とか “[” を使ってると処理に失敗します。
PowerShell使っている人の9割9分9厘が不満を持っていると思います。-LiteralPath のオプション使えば対処できるんですが、これ、逆ですよね。
複数のファイルにマッチングさせるような動作を行う場合にオプション指定させるべきですよね。特殊なことをする場合に意識的にオプションを指定させるべきで、何もしない場合に意図しない動作をするのはまずい気がします。
PowerShell使っている人の9割9分9厘がこれが原因でバグ作り込んで愚痴ってると思います。多分。
Windows用
┌─────────────────┐
| |
| . 下のAAがズレない環境が標準です。 . |
| |
├─────┬─────┬─────┤
| | | |
| ショボ‐ン ..| オマエモナ‐ | ゴルァ! |
| | ∧_∧ |. ∧∧ .|
| ∧_∧ | ( ´∀`) | (,,゚Д゚) │
| ( ´・ω・) .| ( ) |. ⊂ ⊃ .|
| ( つ旦と) | | | | .| ~l | .│
|….と_)_) ..| (__)_)….| し`J .|
| | | |
└─────┴─────┴─────┘