「SoftMap」__ソフト構成の記録ツールを作成しました

SoftMap 1.0.0を作成しました。

このツールは、PCのソフト環境を記録し、再セットアップ時に「何を入れ直すか」を判断できるようにするものです。
CドライブやDドライブを探索し、OSに認識されているアプリとポータブルツール系を認識・記録します。
また、フォルダ構成をファイルツリーとして記録します。(出力オプション指定時)

windows11 / PowerShell で動作します。

URL (GItHub)
https://github.com/givecatcoin/tools/tree/main/softmap

※リポジトリ内の “BUILD.md” を参考にビルドしてください。

以下 “README.md”

SoftMap

PCのソフト環境とフォルダ構成を、軽量なスナップショットとして記録するツール。

ファイルの中身はバックアップせず、再インストールや故障後に「何のソフトがあったか」「どんなフォルダ構成だったか」を素早く把握し、再セットアップを支援する。

背景

課題方針
全体バックアップは容量・時間・運用の面で現実的でない構成情報のみを記録する
故障後に困るのはファイルの場所より「何のソフトがあったか」OS認識ソフトの一覧を主成果物とする
Registry に載らないツール・ポータブルアプリもあるドライブ全体のファイルツリーで補完記録する

目的

PCのソフト環境を記録し、再セットアップ時に「何を入れ直すか」を判断できるようにする。

基本機能

ID機能説明記録対象
BF1OS認識ソフトの記録Registry(Uninstall キー)から取得インストーラー経由のソフト
BF2ドライブ全体の記録対象ドライブのフォルダ・ファイル名を丸ごと走査・保存ツール系の補完 + 全体構成の地図
BF3記録の保存スナップショットファイルへエクスポートBF1 + BF2 の統合
BF4記録の参照用途別ビュー(サマリー・ソフト一覧・ツール一覧)
BF5復元支援レポートチェックリスト形式の再セットアップ手順を生成

BF1 と BF2 の関係

ソフト全体 = BF1(OS認識) + BF2(ツール系)

BF1: Chrome, 7-Zip, VS Code 等(Registry に登録済み)
BF2: 接続中の固定ドライブのフォルダ・ファイル名を全体保存(ツール系の補完を兼ねる)

スキャン範囲(デフォルト)

項目内容
対象ドライブ接続中の固定ドライブを自動検出(文字の決めつけなし)
対象外リムーバブル / CD / ネットワーク(--drive で明示指定は可)
各ドライブ内ルートから均一に再帰走査
除外例Windows$Recycle.Binpagefile.sys.gitnode_modules 等
記録内容パス・名前のみ(ファイル中身は保存しない)

対象範囲

含む

  • BF1: Registry に登録されたインストール済みソフト(HKLM / HKCU)
  • BF2: 上記スキャン範囲のファイルツリー

含まない

  • ファイルの実データ(中身)
  • レジストリ・OS設定の復元
  • 自動フル復元

記録の粒度

モード記録対象位置づけ
all_filesデフォルト全フォルダ + 全ファイル名全体保存(メイン)
folders_and_apps--light全フォルダ + .exe / .lnk のみ軽量モード

プライバシー注意(公開前に必読)

スナップショット(.smb / .smap)には次が含まれます。

  • ホスト名
  • インストール済みソフトの一覧(製品名・発行元・パス)
  • 走査したフォルダ/ファイルのフルパスC:\Users\<ユーザー名>\... など)

実機で取ったスナップショットを GitHub 等に上げないでください。
本リポジトリの .gitignore は *.smb / *.smap / build/ を除外します。

操作方式

コンソール(CLI)単体 exe。 GUI は設けない。

項目方針
形態softmap.exe 1本(インストール不要)
設定任意。探索順: -c → exe と同じフォルダの softmap.conf → カレントの softmap.conf
権限一般ユーザー(管理者不要)

デフォルトはシンプルに

原則具体例
最短コマンドで足りるsoftmap scan / softmap report xxx.smb
追加機能はオプトイン--checklist--tools--map--light 等
確認を飛ばさないrestore の -y は明示時のみ

使い方

softmap scan -o snapshots\2026-07-12.smb
softmap report snapshots\2026-07-12.smb

softmap report snapshots\2026-07-12.smb --software
softmap report snapshots\2026-07-12.smb --tools
softmap report snapshots\2026-07-12.smb --checklist

softmap restore snapshots\2026-07-12.smb --target D:\Restored\ --dry-run

技術スタック

項目選定
言語C(C11)
対象OSWindows(MVP)※ Linux では BF2 のみ開発用に動作
ビルドCMake または MinGW/MSVC 直接コンパイル
配布形態単一 exe

ビルド

詳細は BUILD.md

cmake -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release

テスト:

powershell -ExecutionPolicy Bypass -File scripts\run_tests.ps1

ドキュメント

ソース構成

include/softmap/   … モジュール別ヘッダ
include/softmap.h  … 傘ヘッダ
src/util/  src/core/  src/scan/  src/report/  src/restore/  src/cmd/
tests/fixtures/    … 結合テスト用サンプルツリー

実装状況

機能状態
scan(BF1 + BF2、固定ドライブ自動検出)実装済
.smb / .smap 保存・読込(depth 含む)実装済
report サマリー + オプトイン詳細実装済
restore --dirs-only / --dry-run / --map実装済
info実装済
長パス(\\?\実装済
zlib 圧縮未実装(フラグ予約のみ)
HTML レポート / UWP / diff未実装

ライセンスと免責

本ソフトウェアは無保証(AS IS)です。スキャン漏れ、スナップショットの取り扱い、 restore によるディレクトリ作成の結果などについて、作者は責任を負いません。 詳細は LICENSE および DISCLAIMER.txt を参照してください。