7-Zipを使ってフォルダバックアップバッチを作成する

フォルダをバックアップしてzipに圧縮するバッチを作成する

フォルダを定期的にバックアップする必要があったのでバックアップ用のバッチを作成しました
ディスク容量節約のためにバックアップするときはZipファイルに圧縮させました、圧縮には7-Zipを使用します

7-zip.opensource.jp

7-Zipでフォルダを圧縮するときの基本構文

"C:\Program Files\7-Zip\7z.exe" a "C:\バックアップ先フォルダ\backup.zip" "C:\バックアップ元フォルダ\"

「a」は圧縮に使用するコマンドです
ちなみにファイルの拡張子を7zにすると7zip形式で圧縮されるよ

必須のコマンドはこんな感じ

Command Description 説明
a Add 圧縮に使用する
e Extract 展開に使用する
l List リストの一覧表示
t Test テスト

他にもたくさんオプションがあるけど割愛

バックアップzip.bat

以下のバッチファイルはバッチを実行したフォルダに「_backup」フォルダを作成してzipファイルでバックアップを行います
ついでにログファイルも出力してます

作成されるファイルの階層イメージ

.\_backup\yyyymmdd-hhmmss_フォルダ名.zip

なお、そのままバックアップを実行すると実行するたびにフォルダ「_backup」の中も再帰的にバックアップされてしまうので、スイッチ「-zr」を使用してフォルダ「_backup」は圧縮対象から除外してます

使い方

バックアップしたいフォルダにバッチファイルを設置

実行するとバックアップフォルダが作成されてその中にバックアップzipファイルが出来ます

バックアップフォルダ「_backup」
ログファイルも作成される

続きを読む

AWS クラウドプラテクショナー合格したレポート

AWS クラウドプラテクショナー試験に合格しました、その合格記です
f:id:keiaruesu:20220212024301p:plain
f:id:keiaruesu:20220212022243p:plain
結構ギリギリだった…

AWS クラウドプラテクショナーとは

aws.amazon.com
AWS認定試験は全部で11種類ありますがそのうち一番簡単なやつです、主に以下の知識が必要になります

試験は65問90分、四択の選択形式
最寄りの試験センターで受講する形式だけど、自宅からオンラインで受験することもできる、ただオンライン試験の場合webカメラの設置やPCの設置場所や周辺環境に制限があるため案外ハードルは高い、オンライン受験を受けたい場合は事前に条件をよく調べておこう

勉強方法

基本丸暗記で行ける試験なので各種学習コンテンツを何週かやれば合格できるようになると思う、真面目にやれば1週間程度の勉強でも合格できると思います、実際に行った勉強方法は以下の通り

  • AWS公式ラーニングをやる
  • 試験対策本を読んで写経する
  • 公式の模擬試験を受ける
  • 試験問題集サイトでひたすら問題を解く
続きを読む

はてなブログの公式テーマ「Smooth」の横幅可変で広げる

f:id:keiaruesu:20220208182242g:plain

ブログのデザインを公式テーマ「Smooth」に変えました

公式非公式でいろんなテーマをとっかえひっかえしてみましたが結局公式のデフォルトテーマがいちばんしっくり来るね
f:id:keiaruesu:20210423122209p:plain

はてなブログのテーマはなぜかどれも横幅狭い

いろんなテーマを試してみたんですが一つ共通する不満点がありました
それはブログの横幅がどれも狭いこと

そのまま使うとどんなに横幅広げても本文は狭いまま
f:id:keiaruesu:20210423123749p:plain

コードも読みづらい
f:id:keiaruesu:20210423124004p:plain
どのテーマでも横幅が共通してるということはWebデザインのセオリーとかそういうのがあるんだと思うんだけど、自分としてはコードのサンプルとか書くからなるべく横幅は大きいほうがうれしい、というわけで横幅広げるカスタマイズをしました

デザインCSSCSSを書き換えてテーマをカスタマイズをする

続きを読む

Windowsでショートカットを相対パスで作る

Windowsのショートカットは通常、作成すると絶対パスになっています
f:id:keiaruesu:20211213031313p:plain

月ごとにフォルダ分けしてる等で何度もコピーして使いまわすフォルダだと、フォルダ内にあるショートカットはは絶対パスでなく相対パスでショートカットを作りたいということはちょくちょくあると思います
そこで相対パスのショートカットの作り方です

やり方

たとえば上記のテキストファイルのショートカットの場合、相対パスにするためにはショートカットのプロパティのリンクを以下に書き換えます

::ショートカットのパスを以下に変更する
C:\テストフォルダ\サンプルテキスト (1).txt"
↓
::どっちの表記でもイケる
%windir%\explorer.exe ".\サンプルテキスト (1).txt"
%windir%\explorer.exe "サンプルテキスト (1).txt"

こんな感じ
リンク先のパスを書き換えるのだけど
作業フォルダのパスを空にすることも重要なので忘れないようにしよう
f:id:keiaruesu:20211213042307p:plain

続きを読む

cronでラズパイを定期的に再起動する

ラズパイを24時間稼働させぱなしにしておくと稼働させてる状態にもよりますが1ヶ月程度でハングアップしてしまうことがママあります
そこでラズパイを定期的に再起動するように設定します
再起動の設定にはcronを使用します

まずは再起動方法の確認

再起動のコマンドはこれ

$ sudo reboot 

もしくはこれ

$ sudo shutdown -r now 

コンソールで上記コマンド実行すると再起動するはずです

cronが動作するか確認しておく

ラズパイでスケジュール実行するのはcronってやつを使います、Windowsで言うタスクスケジューラみたいなやつです

cronデーモンが動いているか確認
$ systemctl status cron.service

f:id:keiaruesu:20211123165722p:plain
「active (running)」って表示されれば動いてます

タイムゾーンの確認

一応最初に確認しておくと後でトラブったときにスムーズに解決できるかもしれない

$ date

cronの設定開いてスケジュール登録する

続きを読む

VBAでExcelファイルとWordファイルをPDF化するマクロ

仮想プリンタを使わなくてもPDF出力できます

PDF化と言うと仮想プリンタを使って印刷処理でPDF化する方法が有名ですが
現代のエクセルやワードはファイルの保存で普通にPDFファイルを保存することが可能です

昔ながらの仮想プリンタでPDF出力する画面
f:id:keiaruesu:20210422213445p:plain

現代では普通にPDF保存できるようになってる
Office2012あたりからできるようになった
f:id:keiaruesu:20210422214251p:plain

というわけでVBAでPDFファイル出力するときもExportAsFixedFormatというコマンドで簡単に出力可能になってます

エクセルファイルのPDF出力

エクセルのPDF保存の場合、いろいろ省略するとこんな感じになる

    'ワークブック
    Dim workbookObj As Workbook
    '開く
    Set workbookObj = Workbooks.Open(fileName:=excelFilePath, UpdateLinks:=0, ReadOnly:=True, IgnoreReadOnlyRecommended:=True)

    'PDF出力
    Call workbookObj.ExportAsFixedFormat(xlTypePDF, pdfFilePath)

    'ブックを閉じる
    Call workbookObj.Close

 上記のような単純なWorkbooks.Openの場合、他人や自分が開いてるエクセルファイルを開こうとしていろいろ不都合が発生したりする。そのため下で紹介してるサンプルコードでは「Dim excelApp As New Excel.Application」を使ってプロセスを新しく作成してPDF化するファイルはそっちで開くようにしている。エクセル開く系の処理はこれを頻繁に使うと思うので覚えておいて損はない

ワードファイルのPDF出力

ワードのPDF保存の場合、いろいろ省略するとこんな感じになる

    '必要な参照設定
    'Microsoft Word 16.0 Object Library
    'wordの新規プロセス
    Dim wordApp As New Word.Application
    'wordドキュメントオブジェクト
    Dim wordDoc As Word.Document

    wordApp.Visible = True

    'ドキュメント開く
    Set wordDoc = wordApp.Documents.Open(wordFilePath, ReadOnly:=True)
    'PDF出力
    Call wordDoc.ExportAsFixedFormat(pdfFilePath, wdExportFormatPDF)

    'プロセス開放
    Call wordDoc.Close
    Call wordApp.Quit

 エクセルでワードファイル開くときは「Microsoft Word 16.0 Object Library」の参照設定が必要になるので注意しよう。サンプルコードでは参照設定なしでも動くコードもついでに書いておいたけど参照設定ある版のほうが色々楽だと思う
 エクセルでもワードでもPDF出力に使うのはExportAsFixedFormatという処理だけど渡す引数や引数の並びは全然違うので注意しよう、てかなんで共通じゃないんだこれ

サンプルコード

続きを読む

Raspberry PiとVNC Viewerでラズパイのスクリーンショット撮る方法

VNC Viewerで操作中のラズパイのスクリーンショットが撮れない

 ラズパイはもっぱらVNC Viewerでリモート接続して操作しているんですがこうやって記事書くためにAlt+PrintScreenを押してもなぜかスクリーンショットが撮れない…
 ついでに言うとAlt+PrintScreenではなくPrintScreenキー単体で押すとなぜかWindowsの方でエラーっぽい音が鳴る、どうやら操作しているWindowsマシン全体のスクリーンショットは撮れるけどVNCのウィンドウにフォーカスが当たっていると駄目だということが分かってきた

原因:VNC Viewerの設定で特殊キーがラズパイの方に送り込まれてた

 VNC Viewerウィンドウがフォーカスされてる状態でPrintScreenキー単体を押すとラズパイ内の「/home/pi」フォルダにスクリーンショット画像が保存されていた、これはラズパイのスクリーンショットボタン押した時の正常な動作だそうだ
 なおAlt+PrintScreenのほうは特に何も動作しないようだ

・キャプチャされた画面がファイル保存されてた
f:id:keiaruesu:20210421205237p:plain

解決方法:VNC Viewerの特殊キーの送信オプションを切る

VNC Viewerのオプションにある「Pass special keys directly to VNC Server」のチェックを外すとAlt+PrintScreenが使えるようになる
f:id:keiaruesu:20210421205643p:plain