...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

テキストファイル名と同名のフォルダを作ってテキストファイルをmail.txtにリネームしてそのフォルダに入れる

ThunderbirdのメールをImportExportToolsでテキスト化したときに,メールの件名のフォルダを作ってから,その中に本文のテキストファイルを入れて欲しい。設定ではできないみたいなので,仕方がないからせめてフォルダに入れるところは自動化する。
まず,スクリプトのintofolder.ps1ってファイルを作る。
2020/05/01追記:最後に改善版を追加しました。
2020/10/03追記:最後に複数ファイル版を追加しました。

New-Item $args[0].ToString().Split(".")[0] -ItemType Directory
Rename-Item $args[0] -NewName "mail.txt"
Move-Item "mail.txt" $args[0].ToString().Split(".")[0]

それのショートカットを作って,プロパティーの「リンク先」をこうする。
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned -File intofolder.ps1
また,プロパティの「作業フォルダー」は全文削除する。

f:id:haru-s:20200815190025p:plain

「【至急】先日のメール至急回答願います.txt」みたいなテキストファイルをショートカットにドラッグ&ドロップすれば使える。
PowerShellだと件名に空白が入っていてもちゃんと動くみたいだ。バッチファイルじゃうまく動かなかった。
これでやっと小指の負担が減る。

bgt-48.blogspot.com


2020/05/01追記:
メールの件名をファイルパスに使おうとするので,件名にワイルドカード文字に当たる文字があったらうまく動かなかった。
こうしたら解決した。

New-Item $args[0].ToString().Split(".")[0] -ItemType Directory
Rename-Item -LiteralPath $args[0] -NewName "mail.txt"
Move-Item -LiteralPath "mail.txt" $args[0].ToString().Split(".")[0]


2020/10/03追記:
まとめて操作する場面が多かったので,複数ファイルのDnDができるようにした。

foreach($arg in $args)
{
    New-Item $arg.ToString().Split(".")[0] -ItemType Directory
    Rename-Item -LiteralPath $arg -NewName "mail.txt"
    Move-Item -LiteralPath "mail.txt" $arg.ToString().Split(".")[0]
}