CAD日記

主にAutoCADのことについて書いているけど、近頃は投資系ネタに注力している。自動売買、仮想通貨、PC関係、プログラミングなど。@caddiary

ソフト開発

Hyper-Vのvhdxを圧縮するのはPowerShellでやるんだけど、その自動化手法がおもしろいじゃん(2)

投稿日:2020年3月7日 更新日:

Hyper-Vのvhdxを圧縮するのはPowerShellでやるんだけど、その自動化手法がおもしろいじゃんの続き。以下2点の改修をしたスクリプトを作ってみた。
・vhdファイルが存在しなければ、エラーを出して終了
・圧縮前と後で、vhdのファイルサイズがどれだけ減ったかを比率で出す

手順と経過は以下の通り。
1.compvhdに必要なファイルをダウンロードして解凍
2.解凍結果のcompvhd.ps1を編集
 2行目の「vhd(x)ファイル名フルパス」を実際のvhdファイルのフルパスに書き換えて保存
3.解凍結果のcompvhd.batを管理者として実行 ※ダブルクリックして実行すると権限エラーになる
4.2で指定したファイルが存在しなければ圧縮失敗で終了
5.圧縮に成功すれば、圧縮前後のファイルサイズと比率を表示して終了

ps1の中身を以下に転記しておく。

PowerShellっておもしろい。DOSコマンドラインの流れを汲んでいるかと思いきや、立派なプログラム言語だった。イコール演算子が=や==ではなくて-eqというのがおもしろい。TrueとFalseは、$TRUEおよび$FALSEと書かなければならない。

本当はもう一つやりたかったんだけど、やり方がわからず断念。上記手順の2でvhdのファイルパスを自分で書き変えなきゃいけないのが難点だから、ps1と同じ場所にあるvhdまたはvhdxを探して、1つだけだったら無条件に圧縮実行。2つ以上あったら、そのリストを出してどれを圧縮するか指定させる。。なんて感じ。第3弾でやってみましょ。

続きはこちら。
Hyper-Vのvhdxを圧縮するのはPowerShellでやるんだけど、その自動化手法がおもしろいじゃん(3)

-ソフト開発

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

IS2008

「InstallShield おまえもか!」 まだ2007年だというのに、ソフト名に来年の年号を使う。 AutoCADがはじめたと思われる悪習。 (Windows Server 2008は、まだBet …

VC2017でWindowsの環境変数を取得する方法

C++のUnicodeプロジェクトにおいて、_wgetenvでWindowsの環境変数が取得できるのはわかる。 こんなソースがあって、ビルドしたらエラーになった。 [crayon-5e8caa7c0d …

no image

プロパティシート

ソフト開発の話です。 私はVC6でソフトを作ってます。 ダイアログボックスの作りこみは、おもしろいものです。 プログラマーにとっては、デザイン的センスを問われる分野ですかね。 プロパティシートとは、ペ …

no image

WM_TIMER

MFCで時間を扱うための基本的なメッセージ。 プログラムの10年以上やってるけど、今まで必要なかった。 必要性を感じて調べたら、けっこうおもしれぇ。 データ変換に要している時間を、ダイアログボックス内 …

no image

UNICODE対応プログラム

開発環境:VC6 プリプロセッサの定義に、UNICODE,_UNICODEを追加。(_MBCSをカット) EXEの場合は、エントリポイントシンボルにwWinMainCRTStartupを記述。 ・ch …