Windowsでエクスプローラーの状態を保存・復元!不意の再起動から作業を守る方法

この記事にはアフィリエイトリンクが含まれており、この記事経由で契約すると私に紹介料が入ります。詳しくは プライバシーポリシーをご覧ください。

Windowsでの作業中、PCが突然再起動したり、エクスプローラーが予期せず閉じてしまったりする経験はありませんか?
多くのエクスプローラーウィンドウを開いて作業していたのに、すべてが消えてしまうのは本当にショックですよね。また一から開き直すのは、想像以上に時間と手間がかかります。私も長年この問題に悩まされてきましたが、ついにその煩わしさから解放される解決策を見つけました。
この記事では、現在のエクスプローラーの状態を「保存」し、必要な時に「復元」する方法を、PowerShellとバッチスクリプトを組み合わせて詳しく解説いたします。これでもう、不意の再起動に怯えることなく、安心して作業を進めることができるでしょう。

その前に、もっと重要なこと

ウィンドウが閉じるだけでも大変ですが、もしPCのクラッシュで作業中のデータそのものが消えてしまったら…? 私が28年間、様々なトラブルを乗り越えてたどり着いた結論は「バックアップは保険ではなく、日常」ということです。 ちなみに最近はずっと「EaseUS Todo Backup」を使っています。一度設定すれば全自動でPCを丸ごとバックアップしてくれるので、精神的な安心感が段違いですよ。

目次

なぜエクスプローラーの状態保存が必要なのか?

デジタル作業が日常となる現代において、複数のエクスプローラーウィンドウを開き、様々なファイルやフォルダを行き来しながら作業することは珍しくありません。
しかし、OSのアップデート、システムエラー、電力供給の問題など、予期せぬPCの再起動やフリーズは突然訪れます。
その際、開いていたエクスプローラーウィンドウがすべて閉じてしまい、どのフォルダを開いていたか思い出すだけでも一苦労です。
この問題は、作業効率の低下だけでなく、精神的なストレスにもつながります。
こうした状況を未然に防ぎ、中断された作業をすぐに再開できるようにするために、エクスプローラーの状態を保存し、復元できる仕組みが非常に有効となるのです。

PowerShellで現在のエクスプローラーの状態を取得する

エクスプローラーの状態を保存するためには、まず現在開いているすべてのエクスプローラーウィンドウのパス(場所)を取得する必要があります。ここで活躍するのがPowerShellです。
PowerShellはWindowsに標準搭載されている強力なコマンドラインシェルで、システム管理や自動化に幅広く利用されます。
簡単なPowerShellスクリプトを作成することで、現在開いているエクスプローラーウィンドウのパスを一覧で抽出し、テキストファイルとして保存することが可能です。
このテキストファイルが、後でエクスプローラーの状態を復元するための「設計図」となります。この方法を使えば、手動で一つ一つパスを記録する手間を省き、正確な情報を瞬時に取得できます。

1. 保存用バッチ(SaveExplorerPaths.bat)

@echo off
rem コマンドプロンプトの文字コードをUTF-8に変更して文字化けを防ぐ
chcp 65001 > nul
setlocal

rem === 保存先ディレクトリが存在しない場合は作成する ===
set "SAVE_DIR=C:\temp"
set "SAVE_FILE=%SAVE_DIR%\explorer_paths.txt"

if not exist "%SAVE_DIR%" (
    mkdir "%SAVE_DIR%"
    echo %SAVE_DIR% を作成しました。
)

rem === 開いているエクスプローラーのパスを保存(日本語・英語環境両対応) ===
powershell -NoProfile -ExecutionPolicy Bypass ^
  "$paths=@();$shell=New-Object -ComObject Shell.Application;foreach($w in $shell.Windows()){if($w.Name -eq 'エクスプローラー' -or $w.Name -eq 'File Explorer'){$paths+=$w.Document.Folder.Self.Path}};$paths | Set-Content '%SAVE_FILE%' -Encoding UTF8"

echo エクスプローラーのパスを保存しました: %SAVE_FILE%
endlocal
pause

まずはこの保存用バッチで状態を保存します。
※PowerShellスクリプトをバッチファイルから呼び出しています。
※「C:\temp\explorer_paths.txt」の箇所は自分がフォルダー場所を保存したい箇所に変更してください。テキストファイル名もこの通りじゃなくてもOKです。

2. 再起動+復元用バッチ(RestartAndRestoreExplorer.bat)

@echo off
rem ▼▼▼【重要】ここを追加! ▼▼▼
rem ファイルをUTF-8で読み込むために文字コードを変更
chcp 65001 > nul
setlocal

set "SAVE_FILE=C:\temp\explorer_paths.txt"

rem --- 必要であればエクスプローラーを再起動 ---
rem taskkill /f /im explorer.exe > nul
rem start "" /B %SystemRoot%\explorer.exe
rem timeout /t 1 /nobreak > nul
rem -----------------------------------------

if exist "%SAVE_FILE%" (
    rem for /f でUTF-8ファイルを正しく読み込む
    for /f "usebackq delims=" %%A in ("%SAVE_FILE%") do (
        rem スペースや日本語を含むパスも開けるように""で囲む
        start "" "%%A"
    )
    echo 保存されたパスを復元しました。
) else (
    echo 保存ファイルが見つかりません: %SAVE_FILE%
)

endlocal
pause

※ こちらも「C:\temp\explorer_paths.txt」の箇所は自分がフォルダー場所を保存したい箇所に変更してください。テキストファイル名もこの通りじゃなくてもOKですが、保存用バッチと同じ箇所を記載してください。

スクリプトの活用と注意点

作成したスクリプトは、日々の作業の強い味方となります。

例えば、PCをシャットダウンする前に現在のエクスプローラーの状態を保存しておけば、次回PCを起動した際にすぐに前回の作業環境を再現できます。

また、予期せぬトラブルが発生した際にも、保存しておいた状態を復元することで、迅速に作業に戻ることが可能です。ただし、スクリプトの実行には管理者権限が必要となる場合があることや、セキュリティソフトによっては警告が表示される可能性がある点にはご注意ください。

作成したスクリプトの内容を理解し、自己責任で運用することが重要です。これらの注意点を踏まえつつ、ぜひこの便利な機能を活用し、より快適なWindows環境を構築してください。

まとめ

いかがでしたでしょうか。Windowsで複数のエクスプローラーウィンドウを扱う際の「困った」を解決する、PowerShellとバッチスクリプトを組み合わせた方法をご紹介しました。このシンプルな仕組みを導入するだけで、不意の再起動やPCトラブルによる作業の中断から解放され、日々の作業効率が大きく向上することでしょう。ぜひ一度お試しいただき、その効果を実感してください。もう二度と、開いていたエクスプローラーがすべて消える悪夢に悩まされることはありません。

業務やプロジェクトで「少し助けが欲しい」と感じることはありませんか?
小さなご相談から大きな課題まで、私たちが全力でお手伝いします。
ぜひお気軽にお問い合わせください。

よかったらシェアしてね!
目次