初めに
日々の業務でテキストファイルにメモを取っていると思います。
そこで毎日追記して使っている人もいると思いますが、毎日作成している人もいると思います。
私は毎日わざわざ作成をしたい派です。
追記だと行が長くなり見にくいと思いますし、当日やったメモをそのまま残しやすいからです。
しかし、わざわざ
メモ帳開く > 決まった文言を書く(本日(近日)の予定) > 日付を入れて保存する
とやるのも面倒です。
また、たまったメモファイルを整頓したいというのもあります。
(そのまま残すと容量がどんどん圧迫されて…)
そこで以下のようなバッチ・パワーシェルファイルを作ってみました。
作成したもの
メモ作成用(毎日実行)
memo_maker.bat
@echo off
powershell -ExecutionPolicy Bypass -File "ps1\memo_maker.ps1"
pause
ps1\memo_maker.ps1
# 現在の日付を取得
$currentDate = Get-Date -Format "yyyyMMdd"
# ファイル名を設定 (YYYYMMDD形式)
$fileName = "${currentDate}_memo.txt"
# ファイルを作成
@"
$currentDate memo.
----------
本日の予定を記載
"@ | Out-File -FilePath $fileName -Encoding UTF8
# 完了メッセージ
Write-Host "ファイル '$fileName' が作成されました。"
ファイルのzip化(月一程度実行)
txt_zip.bat
@echo off
powershell -ExecutionPolicy Bypass -File "ps1\txt_zip.ps1"
pause
ps1\txt_zip.ps1
# 現在の日付を取得
$currentDate = Get-Date -Format "yyyyMMdd"
# ZIP ファイル名を設定
$zipFileName = "TextFiles_$currentDate.zip"
# PowerShellでZIPファイルを作成
Compress-Archive -Path "*.txt" -DestinationPath "$zipFileName"
# カレントディレクトリ内の全ての.txtファイルを取得
$txtFiles = Get-ChildItem -Path . -Filter *.txt
# 各.txtファイルを削除
foreach ($file in $txtFiles) {
Remove-Item -Path $file.FullName -Force
}
# 完了メッセージ
Write-Host "ZIPファイル '$zipFileName' が作成されました。"
ファイル構成は以下の通りです。
> tree /F
C:.
│ memo_maker.bat
│ txt_zip.bat
│
└─ps1
memo_maker.ps1
txt_zip.ps1
実行してみた
ダブルクリックで実行してみると以下のようになります。
※実行はbatファイルのダブルクリックでできます
メモ作成用実施
> tree /F
C:.
| 20241029_memo.txt
│ memo_maker.bat
│ txt_zip.bat
│
└─ps1
memo_maker.ps1
txt_zip.ps1
20241029_memo.txt(実施した後にできたファイル)
20241029 memo.
----------
本日の予定を記載
zip化実施(上記の状態で実行)
> tree /F
C:.
│ memo_maker.bat
| TextFiles_20241029.zip
│ txt_zip.bat
│
└─ps1
memo_maker.ps1
txt_zip.ps1
最後に
普段実施していることでちょっと煩わしいな、と思った単純作業もコーディングすることで短縮できるかもしれません。
実は上記のコードもChatGPTを併用して作成をしました。
案があればAIを使って作成でき、業務がはかどるかも?