Programming Field

Scandisk - DOS/コマンドプロンプト コマンド一覧

[MS-DOS/Windows 95/98/Me] ディスク(ドライブ)のチェックをします。

[Windows NT系] エラーをチェックするには、Chkdskを使用してください。

構文

以下の4つのうちいずれかを使用します。

scandisk[.com] [<drive>: [<drive>: ...] | /ALL] [/MONO]
  [/CHECKONLY | /AUTOFIX [/NOSAVE] | /CUSTOM] [/SURFACE] [/NOSUMMARY]
scandisk[.com] <compress-volume-name> [/MONO]
  [/CHECKONLY | /AUTOFIX [/NOSAVE] | /CUSTOM] [/SURFACE] [/NOSUMMARY]
scandisk[.com] /FRAGMENT <file-name>
scandisk[.com] /UNDO [<undo-drive>:] [/MONO]
<drive>: [<drive>: ...] ディスクエラーをチェックするドライブを指定します(ドライブ文字の後ろには「:」が必要です)。ドライブは複数指定することができます。
/ALL 取り外し可能(リムーバブル)なドライブ以外のすべてのディスクドライブをチェックします。
/MONO Scandiskの画面表示を白黒(モノクロ)で表示します。なお、設定ファイル「Scandisk.ini」に「DISPLAY=MONO」を追加するとこのオプションが無くても白黒表示になります。
/CHECKONLY ディスクエラーのチェックのみを行います(エラーを修復するかどうかのプロンプトを表示しません)。/AUTOFIX や /CUSTOM スイッチと同時に使うことはできません。
/AUTOFIX

ディスクエラーのチェックを行い、自動的に修復を行います(エラーを修復するかどうかのプロンプトを表示しません)。破損データが見つかった場合は同じドライブのルートディレクトリにデータがファイルとして保存されます。/CHECKONLY や /CUSTOM スイッチと同時に使うことはできません。

なお、/AUTOFIX を指定してもエラーが見つかった場合はチェック終了時にエラーの概要画面が表示されます。これを表示させない場合は /NOSUMMARY オプションを使います。

/NOSAVE 自動的に修復を行った際、破損データをファイルに保存しないようにします。/AUTOFIX とともに指定する必要があります。
/CUSTOM Scandisk.iniファイルの[Custom]セクションに基づいたエラーチェックを行います。/CHECKONLY や /AUTOFIX スイッチと同時に使うことはできません。
/SURFACE

ディスクチェック後にクラスタスキャンを自動的に実行します。これは /CUSTOM オプションを指定したときの、[Custom]セクション内のSurface設定よりも優先されます。

/SURFACE を指定しなかった場合、/CHECKONLY、/AUTOFIX、/CUSTOM のいずれのオプションも指定されていなかった場合はディスクチェック後にクラスタスキャンを行うかどうかのメッセージが表示されます。

/NOSUMMARY チェック終了時にチェック結果の画面を表示しないようにします。このオプションを指定した場合、エラーが見つかった際のUndoディスクを作成するかどうかの確認も行われなくなります。
<compress-volume-name> 取り付けられていない圧縮ボリュームファイル(DoubleSpace/DriveSpaceのボリュームファイル)のエラーチェックを行います。<compress-volume-name> にはチェックしたいボリュームファイルのパスを指定します。
/FRAGMENT <file-name> <file-name> で指定されたファイルが断片化していないかどうかを調べます。終了コードは設定されず、単純に断片化しているかどうかのメッセージだけが表示されます。
/UNDO [<undo-drive>:]

Scandiskで作成されたUndoディスクに基づいて、Scandiskによるドライブへの変更を元に戻します。<undo-drive>: にはUndoデータを作成したディスクのドライブを「:」付きで指定します。

なお、UndoはUndoを作成してからドライブに変更が加えられていないときのみ行うことができます。変更が加えられている場合ディスクの状態が予期しない状態になり、ディスクが使用できなくなることもあるのでご注意ください。

解説

MS-DOSやWindows 95/98/Meでディスクを検査する際に使用します。検査はファイルアロケーションテーブル(FAT)やディレクトリの構造、ファイルシステムの構造、ブートセクタなどのチェックを行い、必要に応じてディスクのクラスタに異常がないかのチェック(クラスタスキャン)を行います。

クラスタスキャンでは、ファイルのデータが入っているクラスタを1つずつ読み取り・書き込みを行ってチェックします。これが行えなかったクラスタのあるセクタに対しては「不良セクタ」として以後使用できないようにマークを行います。使用頻度が高かったり使用期間が長いディスクは劣化により読み取り・書き込みが行えないクラスタが発生することがあり、それを使用できないようにするために定期的にScandiskでクラスタスキャンしてマークすることができます。

※ 不良セクタのマークはディスクを完全フォーマットすることで消すことはできますが、エラーそのものがなくなるわけではありません。
※ ディスクに異常がある場合、Scandisk自身がディスクに致命傷を与えてしまう場合があります。異常があるとわかっている場合は事前にバックアップを取ることを強くお勧めします。

ScandiskではCDドライブやネットワークドライブ、Substで作成されたドライブなどをチェックすることはできません。

[MS-DOS] Scandisk実行中は他のプログラムを実行しないでください。Scandisk実行中に他のプログラムがファイルアクセスを行っていると、ファイルシステムが正常であるにもかかわらずScandiskがエラーとして検知してしまう場合があります。

Scandiskはプログラム終了時に終了コードを設定します。終了コードは以下の通りです(If Errorlevelで判定可能です)。

コード意味
0ドライブのチェックは正常に終了し、エラーは見つかりませんでした。
1コマンドラインが間違っています。
2メモリ不足または内部エラーにより終了しました。
3ユーザーの操作によりチェックが中断されました。
4ドライブの論理チェックは終了しましたが、クラスタスキャン実行中にユーザー操作により中断されました。(ユーザーがクラスタスキャンを実行しない選択肢を選んだ場合はこの終了コードにはならず 0 が返ります。)
254ディスクにエラーが発見されましたが、それらはすべて修復されました。
255ディスクにエラーが発見されましたが、すべてのエラーを修復することができませんでした。

サンプル1

scandisk /ALL

現在使用可能なドライブ(取り外し可能ドライブを除く)のすべてをチェックします。

サンプル2 (バッチファイル)

@echo off
echo 始める前にディスクのエラーをチェックします。準備が出来ましたら何かキーを押してください...
pause > NUL
scandisk /ALL /AUTOFIX /NOSAVE
if errorlevel 255 goto error_exit
if errorlevel 254 goto do_next
if errorlevel 1 goto error_exit

:do_next
setup
goto do_exit

:error_exit
echo ディスクにエラーがあるため続行できません。

:do_exit

「setup」を実行する前に現在使用可能なドライブすべてのドライブをチェックし、エラーがあった場合は「setup」を実行しないようにします。なお、この例では「エラーがあったが修復された」場合は続行するようにしています。