第7章
必要なDOSコマンド
導入
ディスクからデータを回復しようとする場合、損失を回復するためにどれだけの労力が必要かは、データ損失のケースによって異なります。多くの場合、いくつかの重要なDOS (ディスク オペレーティング システム)コマンドに関する十分な知識があれば、少ない労力でデータを回復できる可能性があります。
場合によっては、これらのコマンドを巧みに使用するだけで、プログラミングなしでデータを回復できる可能性があります。
あなたは DOS とそのコマンドについて何も知らないと思います。 DOS コマンドの紹介のこの章では、データの回復に役立つコマンドについてのみ学習します。まず、MS-DOS の進化を見てみましょう。
略歴
MS-DOS オペレーティング システムは、Intel 8086 マイクロプロセッサ ファミリに基づいています。MS-DOS は、単純なプログラム ローダーから、パーソナル コンピュータ用の複雑で安定したオペレーティング システムへと進化しました。
Microsoft ディスク オペレーティング システム (MS-DOS) バージョン 1.0
IBM はこのコンピューターを 1980 年代初頭に開発しました。 Microsoft は MS-DOS 1.0 を開発しました。 1981 年 8 月にリリースされ、4,000 行のアセンブリ言語ソース コードで構成され、8 キロバイトのメモリで実行されました。
その後まもなく、1982 年に、320 KB の両面フロッピー ディスクをサポートする MS-DOS バージョン 1.1 がリリースされました。 IBM が販売する DOS のバージョンは、IBM-DOS または PC-DOS と呼ばれます。
MS-DOS バージョン 2.0
IBM が 10 メガバイトのハード ドライブの開発を開始したとき、Microsoft はハード ドライブをサポートするように設計された DOS バージョン 2.0 の開発に取り組み始めました。これまで、DOS 1.0 は、その伝統に従い、フロッピー ディスク環境向けに設計されていました。 DOS 1.0 の主な制限の 1 つは、ディレクトリが最大 64 ファイルに制限されていることです。
MS-DOS バージョン 2.0 は、階層的に設計されたファイル システムを組み込むように設計されました。階層型ファイル システムの重要性は、どのディレクトリにもファイルと他のサブディレクトリの両方を含めることができることです。階層型ファイル システムは、MS-DOS/IBM-DOS オペレーティング システムの開発プラットフォームとして使用されていた UNIX オペレーティング システムですでに使用されていました。実際、MS-DOS の基本概念の一部は UNIX のものと似ています。
MS-DOS バージョン 3.0~5.0
バージョン 3.0 は、IBM PC/AT をサポートするために 1984 年 8 月にリリースされました。バージョン 3.1 は 1984 年 11 月にリリースされ、ネットワーク サポートが追加されました。 1986 年 1 月のバージョン 3.2 では 3.5 インチ ドライブがサポートされました。 1987 年には IBM バージョン 3.3 がリリースされ、主に IBM PS/2 シリーズのコンピューターのサポートを目的としていました。
MS-DOS バージョン 3.3 には多くの新しい機能とコマンドが追加されました。 Compaq DOS バージョン 3.31 では、32 メガバイトを超えるハード ディスク パーティションが許可されました。
MS-DOS バージョン 4.01 では、32 メガバイトを超えるパーティションも読み取ります。当初は MS-DOS 4.0 としてリリースされましたが、いくつかの小さなバグが発見されたため、さまざまな修正を加えた更新バージョン 4.01 がリリースされました。このバージョンでは、フルスクリーン、DOS SHELL と呼ばれるメニュー駆動型インターフェイス、および拡張メモリ仕様の追加サポートが追加されました。
バージョン 5.0 は、以前のすべてのバージョンの DOS の代替として開発されました。 DOS 5.0 では、IBM と Microsoft の両社が同じ DOS を販売しており、ドキュメントも同様でした。メモリ要件が大幅に削減されました。拡張メモリと追加メモリのサポートが大幅に改善されました。
DOS の「EDIT」エディタはこのバージョンの DOS に含まれていました。 DOS SHELL は完全に新しいものです。QBASIC は、BASICA と GWBASIC の代わりに導入されました。このバージョンでは、少なくともしばらく前に誤って失われたデータを回復する方法が提供されました。
MS-DOS バージョン 6.0
バージョン 6.0 には、DOS のパフォーマンスを向上させる多くの新しいプログラムが含まれていました。それらには以下が含まれます:
- Microsoft Double Space は、ファイルを圧縮して使用可能なディスク領域を増やす統合ディスク圧縮プログラムです。
- Microsoft Mem Maker は、デバイス ドライバーや常駐プログラムを通常のメモリから上位メモリ領域に簡単に移動できるようにするメモリ最適化プログラムです。
- EMM386.EXE デバイス ドライバーを改良し、より多くの上位メモリ ブロックにアクセスできるようにしました。
- プログラムをロードするメモリ領域を指定できる、拡張された loadhigh および devicehigh コマンド
- Microsoft Backupは、データのバックアップを簡単にするプログラムです。
- Microsoft Anti-Virusは、さまざまなコンピュータウイルスを識別して削除できるプログラムです。
- Microsoft Undeleteは、誤ってファイルを削除した場合に1つまたは3つのレベルの保護を選択できる強化プログラムです。
- CONFIG.SYS ファイルに複数の構成を含める機能。コンピュータの電源投入時に起動コマンドをバイパスする機能。
- MS-DOS ヘルプ、MS-DOS コマンドの完全なオンライン リファレンス
MS-DOS バージョン 7.0 (Windows 95)
DOS は、DOS および Windows 3.x アプリケーションとの下位互換性を保つために Windows 95 に付属しています。次の表で、MS-DOS から Windows への進化を見てみましょう。
MS-DOS バージョン |
メモとコメント |
MS-DOS 1.0 |
1981年にIBM PCで最初のオペレーティング システムが登場 |
MS-DOS 1.25 |
両面ディスクのサポートとバグ修正を追加 |
MS-DOS 2.0
|
1983 年に IBM PC/XT とともに導入され、階層ファイル構造とハード ディスクのサポートが追加されました。 |
MS-DOS 2.01 |
国際サポート付き2.0 |
MS-DOS 2.11 |
バグ修正を含む 2.01 |
MS-DOS 2.25 |
拡張文字セットのサポート |
MS-DOS 3.0 |
1.2MBフロッピーディスクおよび大容量ハードディスクのサポートを追加 |
MS-DOS 3.1 |
Microsoft ネットワークのサポートが追加されました |
MS-DOS 3.2 |
3.5インチディスクのサポートを追加 |
MS-DOS 3.3 |
汎用コードページ(フォント)のサポート |
MS-DOS 4.0 |
32 MBを超える論理ボリュームとビジュアルシェルのサポート |
ウィンドウズ1.0 |
MS-DOS のグラフィカル ユーザー インターフェイス |
ウィンドウズ2.0 |
OS/2、プレゼンテーションマネージャとの互換性 |
ウィンドウズ95 |
使用バージョン 4.00.950 |
ウィンドウズ95 |
使用バージョン 4.00.1111 |
ウィンドウズ98 |
使用バージョン 4.10.1998 |
Windows 98 セカンドエディション |
使用バージョン 4.10.2222 |
Windows ミレニアム |
使用バージョン 4.90.3000 |
ウィンドウズ |
使用バージョン4.0 |
ウィンドウズ2000 |
使用バージョン 5.00.2195 |
ウィンドウズ |
使用バージョン 5.1.2600 |
必要なコマンド
プログラミングや非プログラミング技術によってデータを回復しようとしているときに役立つ可能性のあるいくつかの重要なコマンドを学びましょう。
属性
ATTRIB コマンドは、ファイルやディレクトリに割り当てることができる 4 つの属性 (読み取り専用、アーカイブ、システム、隠し) のうち 1 つ以上を表示、設定、または削除するために使用されます。通常、読み取り専用、隠し、システム属性を削除してファイルを移動または削除できるようにしたり、移動または削除できないように設定したりするために使用されます。
構文:
現在のディレクトリ内のすべてのファイルの属性設定を表示するには:
属性
ディレクトリの属性を表示するには:
ATTRIB ディレクトリ名
ファイルの属性を表示するには:
ATTRIB ファイル名
ファイルまたはディレクトリの属性を設定または削除するには:
ATTRIB [ + | - R] [ + | - A] [ + | - S] [ + | - H] [ディレクトリ|ファイル名] [/S]
+ 属性を設定し、 - 属性をクリアします。
R |
読み取り専用ファイル属性。 |
あ |
アーカイブ ファイルの属性。 |
ス |
システムファイル属性 |
H |
隠しファイル属性。 |
/S |
指定されたパス内のすべてのディレクトリ内のファイルを処理します。 |
読み取り専用属性では、ファイルへのアクセスは可能ですが、変更はできません。システム属性は通常、DOS または Windows が適切にロードするために必要なファイル用に予約されています。隠し属性が設定されているファイルとディレクトリは、通常、ディレクトリ一覧や [開いているファイル] ダイアログ ボックスには表示されません。
フォルダーを非表示にする一般的な理由は、フォルダーがシステムまたはプログラムの動作にとって重要であり、通常の整理操作で削除または移動してはならないためです。隠しフォルダーとシステム フォルダーには、読み取り専用属性が設定されていることもよくあります。
複数の属性は、スペースで区切られたスイッチを組み合わせることで設定またはクリアできます。ファイルとディレクトリの両方に ATTRIB を使用して属性を割り当てたりクリアしたりできますが、動作には違いがあります。最も明らかな違いは、ワイルドカード (? および *) を使用してファイルのグループの属性を表示または変更できるのに対し、ディレクトリは完全な名前で指定する必要があることです。ワイルドカードとショートカットについては、この章の後半で詳しく説明します。
ファイル属性をシステム、隠し、または読み取り専用に設定すると、DEL、ERASE、または MOVE コマンドを使用してファイルを削除または移動できなくなりますが、DELTREE または FORMAT からはファイルを保護できません。ディレクトリの読み取り専用属性を設定することはできますが、あまり役に立たないようです。
まず、属性はディレクトリにのみ適用され、その中のファイルには適用されません。また、フォルダを読み取り専用に設定しても削除は防げませんが、Windows エクスプローラーではフォルダが削除または移動される前に警告通知が表示されます。
「readme」という名前のファイルの属性を表示するには:
ATTRIB の Readme
ファイル「readus.txt」に読み取り専用属性を割り当てるには、次を使用します。
ATTRIB readus.txt +R
「data19.txt」からシステム属性と隠し属性を削除するには:
ATTRIB -S -H データ19.txt
ディレクトリ「c:\mynotes」を非表示にするには
ATTRIB +H c:\mynotes
C: 内のディレクトリではなくファイルを非表示にするには、
ATTRIB +H c:*.*
CD (または CDIR)
指定されたドライブ上の現在のディレクトリを変更 (または表示) します。
構文:
現在のディレクトリを表示するには:
CD [ドライブ:]
現在のディレクトリを変更するには:
CD パス
Path 現在のディレクトリを path に変更します。各ドライブには独自の「現在のディレクトリ」があり、変更されるまで「現在の」ままです。したがって、ドライブ c: の現在のディレクトリを変更しても、他のドライブの現在のディレクトリの状態には影響しません。別のドライブの現在のディレクトリに変更するには、ドライブ文字とコロンを入力するだけです。
現在のドライブがc:の場合、ディレクトリに入るには「
c:\windows\java"
CD \windows\java
現在のディレクトリがすでに「c:\windows」である場合、必要なのは次のことだけです。
Java CD
現在のディレクトリ「c:\windows\java」を親ディレクトリ「c:\windows」に変更するには:
CD..
現在、ディレクトリ「c:\windows\java\notes\klip\」にいるとします。ここで、Windows ディレクトリに直接ジャンプしたい場合は、前のケースで行ったように、さらに 2 つのドット (..) を追加します (この
CD... を参照)。
c: ドライブの現在のディレクトリが「c:\windows\notes」で、e: ドライブの現在のディレクトリが「e:\movie」の場合、「e:\movie」から「c\windows\notes」にすべてのファイルをコピーするには、次のようにします。
コピー e:*.* c:
「e:\downloads」からすべてのファイルを c のルート ディレクトリにコピーするには:
コピー e:*.* c:\
チェック
CHKDSK は、ディスクの状態をチェックし、一部のディスク エラーを修正し、ファイル アロケーション テーブル (FAT) とディレクトリ構造で見つかったエラーを示す状態レポートを表示するために使用されます。CHKDSK は、ディスクの使用状況の概要も表示します。ディスクにエラーが見つかった場合、CHKDSK は警告メッセージを表示します。
構文:
CHKDSK [パス] [/F] [/V]
パス チェックするドライブとディレクトリを指定します。
/F ディスク上のエラーを修正します。
/V ディスク上のすべてのファイルのフルパスと名前を表示します
SCANDISK は、より広範囲のディスクの問題を確実に検出して修復できるため、やや時代遅れの CHKDSK よりも一般的に好まれています。/F スイッチ (検出されたエラーを修正するためのもの) は、DOS および CHKDSK 以外のプログラムが実行中の場合は使用しないでください。
CHKDSKはSUBSTを使用して作成されたドライブでは使用できません。また、ネットワークドライブでも使用できません。Win98では、CHKDSKはディスクをチェックしませんが、基本的なデータを提供します。
ディスクがクラッシュした場合、または MBR、DBR、FAT などのブート セクターに論理エラーがある場合、またはルート ディレクトリが破損している場合は、CHKDSK や SCANDISK、またはその他のディスク スキャン プログラムを使用してディスクをスキャンしないでください。データ情報が歪んでしまい、回復が困難になる可能性があります。また、データを完全に回復できない可能性もあります。 |
CLSA
コマンド プロンプトとカーソルだけを残して画面をクリアします。
構文:
CLSA
指示
コマンド インタープリターの新しいコピーを開始します。
構文:
コマンド [パス] [デバイス] [/スイッチ]
パス command.com を含むドライブとディレクトリ。command.com がルート ディレクトリにない限り、これを指定する必要があります。
デバイス コマンドの入力と出力に使用するデバイス。デフォルトではキーボードとモニターです。
/P 新しいコマンドインタープリターを永続的にします。
/E:x 初期環境サイズ [バイト] を設定します。x は 256 ~ 32,768 バイトの範囲で設定する必要があります。既定値は 256 バイトです。
/L:y 内部バッファの長さ [バイト]。y は 128 ~ 1,024 バイトの範囲で設定する必要があります。このスイッチは、コマンド インタープリタが永続的な場合にのみ受け入れられます。/P スイッチも設定する必要があります。
/U:z 入力バッファ長 [バイト]。z は 128 ~ 255 バイトの範囲で設定する必要があります。デフォルトは、? です。このスイッチは、コマンド インタープリタが永続的な場合にのみ受け入れられます。/P スイッチも設定する必要があります。
/MSG すべてのエラー メッセージをメモリに保存します。このスイッチは、コマンド インタープリタが永続的な場合にのみ受け入れられます。/P スイッチも設定する必要があります。
/LOW COMMANDを低メモリに保持するよう強制する
/Y /Cまたは/Kで指定されたバッチプログラムをステップ実行します
/C コマンド コマンドを実行して終了します。これはコマンド ラインの最後のスイッチである必要があります。
/K コマンド コマンドを実行し、実行を続行します。これはコマンド ラインの最後のスイッチである必要があります。
コピー
COPY の主な用途は、1 つ以上のファイルを別の場所にコピーすることですが、ファイルを結合 (追加および連結) したり、ファイル、プリンター、またはその他のデバイスに直接入力したりするためにも使用できます。
構文:
コピー [/A | /B] ソース [/A | /B] [+ ソース [/A | /B] [+ ...]]
[宛先 [/A | /B]] [/V] [/Y | /-Y]
ソース コピーするファイル。これは単一のパラメータである必要がありますが、ワイルドカード (* または ?) を使用して複数のファイルを指定することができます。有効なデバイス (例: CON) を指定することもできます。
COPY CON NOTES.TXTのように
テキストを入力またはコピーし、Ctrl+Z キーを押して終了します。
destination 新しいファイルのディレクトリおよび/またはファイル名。 destination が指定されていない場合、source は元のファイルと同じ名前と作成日で現在のディレクトリにコピーされます。 source が現在のディレクトリにある場合、「ファイルをそれ自体にコピーすることはできません」というエラー メッセージが表示されます。
file /A は、COPY がファイルを ASCII テキスト ファイルとして扱うように強制します。
file /B COPY がファイルをバイナリ ファイルとして扱うように強制します。
/V 新しいファイルを読み取ることができるかどうかを確認します。
/Y ファイルを上書きする前に警告プロンプトを表示しません。
/-Y ファイルを上書きする前に警告を表示し、確認を求めます。
コマンドラインから使用する場合、宛先に指定されたファイルが指定された場所に既に存在する場合、COPY はデフォルトで警告メッセージを表示し、古いファイルを上書きする前に確認を求めます。一方、COPY をバッチ ファイルで使用すると、既存のファイルは警告なしに上書きされます。
このデフォルトの動作は、COPYCMD 環境変数で /Y | /-Y スイッチを事前に設定することで変更でき、コマンド ラインで /Y | /-Y スイッチを使用することで上書きできます。
COPY は、長さが 0 バイトのファイルをコピーしません。代わりに、そのようなファイルを削除します。これらのファイルをコピーするには、XCOPY を使用します。ソースおよび/または宛先は、ファイルではなく、適切なデバイス (CON、COMx、LPTx など、x は 1、2、3 など) である場合があります。
コンテキストに応じて、Copy はファイルをバイナリまたは ASCII テキスト ファイルとして扱います。デフォルトでは、次のようになります。
- ある場所から別の場所にファイルをコピーする場合(ASCIIかどうかに関係なく)、COPYはバイナリモードを想定します。
- ファイルを連結する場合、COPYはASCIIモードを想定します。
- ソースまたはコピー先がデバイス (ディスク以外) の場合、コピーは ASCII モードであると想定されます。
バイナリ モードで動作している場合、COPY はファイル アロケーション テーブルからファイルの開始位置を決定し、その位置からそのファイルに割り当てられたバイト数をコピーします。
ASCII モードの場合、データはファイルの終わり (ASCII 文字番号 26、Ctrl-Z) 文字に達するまでコピーされます。この文字はコピーされませんが、COPY は新しいファイルを閉じる前に EOF 文字を追加します。
この複雑な手順により、COPY はファイルを連結し、ファイル以外の入力 (キーボードなど) を操作できるようになります。デフォルト モードが適切でないケースが稀にありますが、その場合は必要に応じてソース ファイルや宛先ファイルに /A または /B スイッチを追加することで、デフォルト モードを上書きできます。
現在のドライブとディレクトリにある「note.txt」をディレクトリ「mynotes」にコピーするには:
note.txt をコピー c:\mynotes
または
note.txt をコピー c:\mynotes\
最初のケースでは、「mynotes」ディレクトリが存在しない場合は、「note.txt」がドライブ C のルート ディレクトリにある「mynotes」という名前のファイルにコピーされます。2 番目のケースでは、「無効なディレクトリ」というエラー メッセージが表示されます。「mynotes」ディレクトリ内のすべてのファイルをドライブ D の「mynotes backup」という名前のディレクトリにコピーするには、次のようにします。
コピー c:\mynotes\*.* d:\mynotes バックアップ\
現在のドライブとディレクトリに「note.txt」のコピーを作成し、「program note.txt」という名前を付けます。
COPY note.txt "プログラムnote.txt"
デバッグ
DEBUG は、コンピュータの一部を調べ、アセンブリ コードを記述してコンピュータ上で特定のタスクを実行する方法です。このために、MS-DOS 2.x - 4.x では DEBUG.COM が使用され、MS-DOS 5.x 以降では DEBUG.EXE が使用されました。
DEBUG.EXE は、熟練したユーザーの手に渡れば、短期 (RAM) および長期 (ハード/フロッピー/テープ メディア) のメモリの内容を表示および編集できる、驚くほど強力なツールとなる小さなプログラムの 1 つです。アセンブリ言語コードをコンパイル (および、ある程度まで逆コンパイル) することもできます。
DEBUG は、ファイルをバイト レベルで表示および変更できるバイト エディターです。「元に戻す」コマンドがないため、使用する前にバックアップを取っておくことをお勧めします。DEBUG ユーティリティを使用するときは、自分が何をしているのかをよく理解しておく必要があります。
これは、ハードウェア レベルでコンピューターにアクセスするために使用できる強力なプログラマー ツールです。注意しないと、ハード ディスクが消去されたり、キーボードがロックされたりするなどの損害が発生する可能性があります。
構文:
DEBUG [ファイル名]
DEBUG [[ドライブ:] [パス] ファイル名 [テストファイルパラメータ]]
[ドライブ:][パス]ファイル名 テストするファイルを指定します。
testfile-parameters テストするファイルに必要なコマンドライン情報を指定します。
DEBUGの開始方法
DEBUG は 2 つの方法のいずれかで開始できます。
方法 1:
DOSプロンプトで次のように入力します。
DEBUG (戻る)
DEBUG はハイフン (-) プロンプトで応答します。プロンプトが表示されると、DEBUG は多数の 1 文字コマンドの 1 つを入力するのを待機します。この方法で DEBUG を起動すると、コンピュータの内部ハードウェアを操作し、RAM 内のすべてのメモリ位置の内容を表示できます。また、フロッピーまたはハード ディスクの 128 セクターまでロードして、その内容を表示、編集、または別の場所に移動することもできます。
DEBUG は、16 進数で FFFF バイトに相当する 65,535 (10 進数) の 1 バイト位置のメモリ内に作業領域を設定します。この領域の最初の 256 (10 進数) または 100 16 進数バイトは、プログラムのプログラム セグメント プレフィックス (PSP) 用に確保されており、いかなる方法でも変更してはなりません。DEBUG を使用してメモリにセクターまたはデータをロードするときは、オフセット 100 から始まる位置に配置する必要が常にあります。
デバッグ コマンドの例を次の行に示します。
デバッグ
L 0100 0 0 80 (戻る)
このコマンドでは、デバッグに、セクター 0 から始まる A ドライブからオフセット 100、80 (16 進数) セクターをメモリにロードするように指示しています。80 16 進数セクターは 128 10 進数セクターに等しいため、ディスク上の各セクターが 512 バイトを格納する場合、メモリにロードされるバイトの合計数は (512 X 128) つまり 65,540 バイト (最大) になります。
方法 2:
DOSプロンプトで次のように入力します。
DEBUG \path\filename (戻る)
次に、DEBUG は、コマンド ラインのパスとファイル名フィールドで指定されたファイルとともにメモリに自身をロードし、ファイルの最初のバイトを作業領域のオフセット 100 に配置します。
このように DEBUG を起動すると、COM プログラムまたは ASCII テキスト ファイルを表示、編集、または移動できます。これは、COM プログラムをデバッグまたは修正するための非常に便利な方法です。
MS-DOS では、その制御下で実行できるプログラムは 2 種類だけであり、それらの拡張子は EXE または COM で終わる必要があります。これら 2 種類のプログラムの違いは、DOS がプログラムのメンテナンス部分を処理する方法にあります。
このメンテナンス領域は、プログラム セグメント プレフィックス (PSP) とも呼ばれ、プログラムによって確保される必要がある 256 バイトのメモリ ブロックであり、プログラムが終了したときに DOS がオペレーティング システムに制御を戻すために必要です。
詳細には立ち入らずに、これら 2 種類のプログラムの主な違いを指摘します。
COM 拡張
COM プログラムは非常に小さくコンパクトなプログラムで、サイズは 65K バイトを超えることはできません。COM プログラムの PSP は、プログラムの最初の 100 16 進数 (256 Dec) の位置にあります。COM プログラムの最初の命令は、メモリのオフセット 100 から開始する必要があります。
DOS は COM プログラム用の PSP を作成するため、プログラムをアセンブルするときにこれを考慮する必要はありません。すべてのデータ、コード、スタック領域は、メモリの同じセグメントにあります (1 セグメントは 64K)。
EXE拡張子
EXE プログラムのサイズは 200 バイトから 640k バイトまで任意です。プログラムをアセンブルするときに、プログラマーが PSP を設定する必要があります。プログラマーは、プログラム内の最初の命令の位置を決定します。EXE プログラムは、メモリ内のデータ、コード、スタック領域に個別のセグメントを使用します。
EXE ファイルと COM ファイルのプロパティを比較すると、EXE プログラムをアセンブルするのは COM プログラムよりもはるかに難しいことがわかります。デバッグ ユーティリティ プログラムは、デバッグに入るたびに PSP 領域を設定することにより、COM プログラムでのみ動作するように設計されています。
DEBUG に入ると、オフセット 100 からプログラムのアセンブリを開始でき、PSP やデータ、コード、スタックの場所を気にする必要がなくなります。プログラムをメモリにロードする前に、別の拡張子で名前を変更すれば、EXE プログラムを DEBUG で確認することができます。
DEBUG が起動したら、? と入力してデバッグ コマンドのリストを表示します。DEBUG を終了するには、「Q」と入力して Enter キーを押します。DEBUG ルーチンを実行するには、「G」と入力して Enter キーを押します。
例を見てみましょう:
DEBUG <戻る>
D40:00 <戻る>
コンピュータのポートに関する情報が表示されます。ポートが存在しないか応答しない場合は、そのポートのステータスが 00 として表示されます。
戻るにはQと入力します。
Q <戻る>
DEBUG が呼び出されると、やや難解な「DEBUG プロンプト」、つまりハイフン (-) が表示されます。プロンプトでは、次の「DEBUG コマンド」が有効です。
指示 |
パラメータ |
アクション |
? |
|
これは DEBUG コマンドのリストです。 |
あ |
[住所] |
組み立てる |
C |
範囲アドレス |
比較する |
だ |
[開始アドレス [終了アドレス | L範囲]] |
メモリのセグメントを表示します。デフォルトでは、開始アドレスはメモリの最初の空きセグメントのオフセット 100、または DEBUG によってロードされたファイルを含むセグメントのオフセット 100 です。デフォルトの終了アドレスは 017F (128 バイトの範囲) です。 |
そして |
住所 [リスト] |
入力 |
ふ |
範囲リスト |
埋める |
グ |
[=アドレス] [アドレス] |
行く |
H |
値1 値2 |
ヘックス |
私 |
ポート |
入力 |
ら |
- |
以前に「名前が付けられた」( N コマンドによって)ファイルをメモリにロードし、表示/編集できるようにします。 |
ら |
番号 |
バイト数を示すために「範囲」引数を受け入れるコマンドで使用されます。引数では通常、開始アドレス L 数値のように使用されます。数値がセグメントの末尾を超える終了アドレスを取る必要がある場合、終了アドレスがセグメントの最後のバイトになるように数値が切り捨てられます。 |
ま |
範囲アドレス |
動く |
いいえ |
[パス] ファイル名 [引数リスト] |
DEBUG 用のファイルに「名前を付けます」。ファイルを表示/編集するために読み込む前に、ファイルに「名前を付ける」必要があります。 |
の |
ポートバイト |
出力 |
ポ |
[=住所] [番号] |
進む |
質問 |
|
DEBUG を終了します。 |
R |
[登録する] |
登録する |
ス |
範囲リスト |
検索 |
T |
[=アドレス] [値] |
トレース |
で |
[範囲] |
未組み立て |
で |
[アドレス] [ドライブ] [最初のセクター] [番号] |
書く |
シャー |
[#ページ] |
拡張メモリを割り当てる |
爆笑 |
[ハンドル] |
拡張メモリの割り当てを解除する |
エックスエム |
[Lページ] [Pページ] [ハンドル] |
拡張メモリページをマップする |
サイズ |
|
拡張メモリの状態を表示する |
DEL (または ERASE)
名前付きファイルを削除します。DEL と ERASE は同義です。
構文:
ファイルを削除するには:
DEL [パス] ファイル名 [/P]
ファイル名 削除するファイルの名前。
/P 各ファイルを削除する前に確認を強制します。
確認付きでディレクトリ内のすべてのファイルを削除するには:
DEL パスまたは
DEL パス \*.*
確認なしでディレクトリ内のすべてのファイルを削除するには:
パス\?*。*
DEL は、削除対象を指定するパラメータを 1 つだけ受け入れます。ただし、このパラメータはワイルドカードを使用して記述できるため、複数のファイルを削除できます。複数のパラメータが検出されると、コマンドは中止され、エラー メッセージが表示されます。
DEL は、スペースを含む長いファイル名を複数のパラメータとして解釈し、エラーを引き起こします。スペースを含む長いファイル名を引用符で囲むと、問題は解決します。例を見てみましょう。
D:\>メモ2.txtを削除します
パラメータが多すぎます - 2.txt
D:\>del "note 2.txt"
D:\>_
DEL は、読み取り専用、隠し、および/またはシステム属性が設定されているファイルを削除しません。このようなファイルを削除するには、DELTREE を使用するか、ATTRIB コマンドで必要な属性を変更します。
デルツリー
ファイルとディレクトリ、およびその中のすべてのサブディレクトリとファイルを削除します。
構文:
ディレクトリとそこに含まれるすべてのサブディレクトリおよびファイルを削除するには:
DELTREE [/Y] ディレクトリ
ディレクトリ 削除するディレクトリ。
/Y 削除前の確認プロンプトを抑制します。
すべてのファイルとサブディレクトリを削除し、ディレクトリ自体は残すには:
DELTREE [/Y] ディレクトリ\*.*
ファイルを削除するには:
DELTREE [/Y] ファイル名
DELTREE コマンドは、ファイルが隠し、システム、または読み取り専用としてマークされているかどうかに関係なく、ディレクトリまたはサブディレクトリに含まれるすべてのファイルを削除します。
DELTREE コマンドはワイルドカードをサポートしていますが、注意して使用する必要があります。ディレクトリ名とファイル名の両方に一致するワイルドカードを指定すると、ディレクトリとファイルの両方が削除されます。
DELTREE コマンドでワイルドカードを指定する前に、DIR /A コマンドを使用して、削除するファイルとディレクトリを表示します。あいまいな指定による予期しない事態を回避するために、フルパスを指定するのが最も安全です。いくつか例を見てみましょう。
C ドライブの NOTES ディレクトリを、NOTES ディレクトリのすべてのファイルとサブディレクトリも含めて削除するには:
DELTREE c:\notes
NOTES ディレクトリ内のすべてのファイルとサブディレクトリを削除し、将来の使用のために空のディレクトリ NOTES を残し、確認プロンプトを表示しないようにするには、次のようにします。
DELTREE /Y c:\notes\*.*
属性をリセットせずに、c:\data ディレクトリ内の読み取り専用ファイル recovery.doc を削除するには:
DELTREE /Y c:\data\recover.doc
ドスキー
DOSKEY は、コマンド ラインの編集を容易にし、以前のコマンドを記憶し、マクロを記録できるようにすることで、コマンド ラインからの作業を支援するように設計された TSR です。
構文:
DOSKEY をロードするには:
DOSKEY [/スイッチ]
スイッチ |
何をするのか |
/B: xxx |
マクロとコマンドのバッファのサイズを設定します。xxx の最小値は256 で、デフォルトは 512 (バイト) です。DOSKEY がすでに実行されている場合は、バッファ サイズを変更するときに再ロードする必要があります (/R を使用)。 |
/E:オン|オフ |
マクロの再生時にコマンドの表示を有効または無効にします。E (エコー) はデフォルトでオンになっています。 |
/F:ファイル名 |
ファイル名を取得します- Macroname=Text の形式でマクロのリストを含むテキスト ファイル |
/H |
メモリに保存されているすべてのコマンドを表示します。(このリストはファイルにリダイレクトされません)。 |
/I|O |
テキストをデフォルトで挿入モードまたは上書きモードで入力するかどうかを指定します。どちらの場合も、<Insert> を使用して代替モードを選択できますが、<Enter> を使用するとすぐにデフォルトがリセットされます。デフォルトのモードは上書きです。 |
/K: xx |
キーボードの先行入力バッファのサイズを設定します。デフォルトは 15 (文字) です。DOSKEY がすでに実行されている場合は、バッファ サイズを変更するときに再ロードする必要があります (/R を使用)。 |
/L |
行編集バッファの最大サイズを設定します。デフォルトは 128 (文字) です。 |
/マ |
現在バッファ内にあるすべての DOSKEY マクロのリストを表示します。このリストは、標準の DOS リダイレクト (>) を使用してテキスト ファイルにリダイレクトできます。 |
/R |
DOSKEY の新しいインスタンスをインストールします。DOSKEY がすでに実行されている場合は、バッファからマクロとコマンド ライン履歴の両方がクリアされます。DOSKEY の新しいインスタンスをインストールしても、以前のインスタンスは削除されないことに注意してください。したがって、/R を使用するたびに、従来のメモリまたは上位メモリがさらに 5K 使用されます。 |
マクロ名 |
マクロの名前。これは、Ctrl キーや Alt キーによって変更される可能性のある 1 つ以上の文字の文字列です。 |
文章 |
Macronameに割り当てられるテキスト文字列。これは通常、適切なパラメータやスイッチを伴う 1 つ以上の DOS コマンドになります。 |
DOSKEY マクロを作成するには:
DOSKEY マクロ名=テキスト
マクロを実行するには:
マクロ名
スイッチ |
何をするのか |
/B: xxx |
マクロとコマンドのバッファのサイズを設定します。xxx の最小値は256 で、デフォルトは 512 (バイト) です。DOSKEY がすでに実行されている場合は、バッファ サイズを変更するときに再ロードする必要があります (/R を使用)。 |
/E:オン|オフ |
マクロの再生時にコマンドの表示を有効または無効にします。E (エコー) はデフォルトでオンになっています。 |
/F:ファイル名 |
ファイル名を取得します- Macroname=Text の形式でマクロのリストを含むテキスト ファイル |
/H |
メモリに保存されているすべてのコマンドを表示します。(このリストはファイルにリダイレクトされません)。 |
/I|O |
テキストをデフォルトで挿入モードまたは上書きモードで入力するかどうかを指定します。どちらの場合も、<Insert> を使用して代替モードを選択できますが、<Enter> を使用するとすぐにデフォルトがリセットされます。デフォルトのモードは上書きです。 |
/K: xx |
キーボードの先行入力バッファのサイズを設定します。デフォルトは 15 (文字) です。DOSKEY がすでに実行されている場合は、バッファ サイズを変更するときに再ロードする必要があります (/R を使用)。 |
/L |
行編集バッファの最大サイズを設定します。デフォルトは 128 (文字) です。 |
/マ |
現在バッファ内にあるすべての DOSKEY マクロのリストを表示します。このリストは、標準の DOS リダイレクト (>) を使用してテキスト ファイルにリダイレクトできます。 |
/R |
DOSKEY の新しいインスタンスをインストールします。DOSKEY がすでに実行されている場合は、バッファからマクロとコマンド ライン履歴の両方がクリアされます。DOSKEY の新しいインスタンスをインストールしても、以前のインスタンスは削除されないことに注意してください。したがって、/R を使用するたびに、従来のメモリまたは上位メモリがさらに 5K 使用されます。 |
マクロ名 |
マクロの名前。これは、Ctrl キーや Alt キーによって変更される可能性のある 1 つ以上の文字の文字列です。 |
文章 |
Macronameに割り当てられるテキスト文字列。これは通常、適切なパラメータやスイッチを伴う 1 つ以上の DOS コマンドになります。 |
DOSKEY マクロを作成するには:
DOSKEY マクロ名=テキスト
マクロを実行するには:
マクロ名
DOSKEY コマンド |
何をするのか |
左/右カーソル |
カーソルを 1 文字前または前に移動します。 |
Ctrl + 左/右カーソル |
カーソルを 1 単語分前後に移動します。 |
ホーム/終了 |
カーソルを行頭/行末に移動します。 |
上/下カーソル |
保存されているコマンドのリストを上(および後ろ)にスクロールします。「上」キーを押すたびに、前のコマンドが呼び出され、コマンド ラインに表示されます。 |
ページアップ/ダウン |
バッファ内の最も古い/最新のコマンドを呼び出します |
F1 |
テンプレートからコマンド ラインに次の文字をコピーします。 |
F2 + キー |
テンプレートからキーまでのテキストをコピーします (キーは含みません) 。 |
F3 |
現在の文字位置からコマンド ラインにテンプレートをコピーします。 |
F4 + キー |
現在の文字位置からkeyまでの文字(ただし key は含まない)を削除します。 |
F5 |
現在のコマンドをテンプレートにコピーし、コマンド ラインをクリアします。 |
F6 |
コマンド ラインの現在の位置にファイル終了文字 (^Z) を配置します。 |
F7 |
コマンド履歴の番号付きリストを表示します。 |
Alt+F7 キー |
バッファに保存されているすべてのコマンドを削除します。 |
文字 + F8 |
1 つ以上の文字Charsを入力してから F8 キーを押すと、 Charsで始まる最新のコマンドが表示されます。もう一度 F8 キーを押すと、 Charsで始まる次に最近のコマンドが表示されます。 |
F9 +コマンド# |
指定されたコマンドをコマンド ラインに表示します。 |
Alt+F10 キー |
すべてのマクロ定義を削除します。 |
マクロを削除するには:
DOSKEY マクロ名=
DOSKEY 特殊文字
マクロでは、コマンド操作を制御するために次の特殊文字を使用できます。
キャラクター |
何が |
$G |
出力をリダイレクトします。リダイレクト記号>と同等です。 |
$G$G |
出力をファイルの末尾に追加します。追加記号 >> と同等です。 |
$L |
入力をリダイレクトします。記号 < と同等です。 |
$B |
マクロ出力をコマンドに送信します - パイプ記号 | と同等です。 |
$T |
マクロを作成するときやDOSKEYコマンドラインでコマンドを入力するときにコマンドを区切ります。 |
$$ |
$記号に使用 |
1ドルから9ドル |
マクロの実行時に指定できるコマンドラインパラメータを表します。バッチプログラムの %1 から %9 の文字に相当します。 |
$* |
macroname の記述時に指定できるコマンドライン情報を表します。$* は、 macroname の後のコマンドラインに入力されたすべての内容がマクロ内の$*に置き換えられることを除いて、置き換え可能なパラメータ$nに似ています。 |
あなた
ディレクトリ内のファイルとサブディレクトリのリストを表示します。
構文:
DIR [ドライブ:] [パス] [ファイル名] [/スイッチ]
スイッチ |
何ができるのか |
なし |
デフォルトでは、DIR は次のように表示します。
- ディスクのボリュームラベルとシリアル番号を含むヘッダー。
- 現在のディレクトリにあるすべてのファイルとサブディレクトリのリスト。FAT にリストされている順序で表示されます (「隠し」および/または「システム」とマークされているものは除きます)。各ファイル/ディレクトリには、サイズ、最終変更日時、および長いファイル名が付けられます。
- リストされているファイルの総数、それらの累積サイズ、およびディスク上に残っている空き容量 (バイト単位) を含むフッター。
|
/A [属性] |
指定された属性を持つファイルと持たないファイルを表示します。複数の属性をスペースなしで指定できます。
属性(接頭辞として「-」を使用すると「なし」が指定されます)
D ディレクトリ
R 読み取り専用ファイル
H 隠しファイル
A 最後のバックアップ以降に変更されたファイル
S システム ファイル |
/O
[並べ替え順] |
ファイルをソート順に一覧表示します。
ソート順が指定されていない場合は、ディレクトリがアルファベット順に一覧表示され、その後にファイルもアルファベット順に一覧表示されます。ソート順キーの任意の組み合わせを指定でき、ファイルはキーの順序でソートされます。sortorder
(プレフィックスとして「-」を使用すると順序が逆になります)
N 名前順 (アルファベット順)
S サイズ順 (小さい順)
E 拡張子順 (アルファベット順)
D 日時順 (最も古い順)
G ディレクトリを最初にグループ化
A 最終アクセス日順 (古い順) |
/S |
指定されたディレクトリとそのすべてのサブディレクトリ内のファイルを表示します。 |
/で |
ワイドリスト形式。ファイル名とディレクトリ名は5列にリストされます。 |
/B |
ベア形式。ファイルとディレクトリは、ヘッダー、概要、詳細なしで 1 つの列にリストされます。 |
/L |
出力は小文字で行われます。 |
/P |
情報満載の各画面で一時停止します。任意のキーを押すと次の画面が表示されます。 |
/V |
詳細モードに強制します。これにより、標準情報に加えて、各ファイルの属性、最終アクセス日、割り当てられたディスク容量が表示されます。 |
/と |
長いファイル名はファイル一覧に表示されません。 |
/4 |
日付を 2 桁ではなく 4 桁で表示します。 |
DIR コマンドは、パラメータとして 1 つのパスのみを受け入れます。スペースを含む長いファイル名とディレクトリ名は、引用符で囲む必要があります。また、* や ? などのワイルドカードを使用して、ファイルとサブディレクトリのサブセットの一覧を表示することもできます。
DIR は、標準のピリオド (.) ショートカットと一緒に使用して、上位レベルのディレクトリを表示できます。必要な数よりも多くのピリオドを使用すると、ルート ディレクトリ、ディレクトリ、およびファイルが表示されます。
リダイレクトを使用して DIR コマンドの出力をファイルまたは別のコマンドに送信する場合、ファイルのみをリストするには /A:-D を使用し、ファイルのサイズ、ヘッダー、概要情報などの余分な情報を避けるには /B を使用すると便利です。また、DIR コマンドの出力がパイプ経由でリダイレクトされると、一時ファイルが作成され、操作が完了すると自動的に削除されます。
デフォルトでは、この一時ファイルは「TEMP」環境変数で指定されたディレクトリにありますが、これが指定されていないか見つからない場合は、現在のドライブの現在のディレクトリに作成されます。DIR コマンドも現在のディレクトリを参照している場合は、そのような一時ファイルがすべて取得され、リストに含まれます。
ディスクコピー
DISKCOPY はフロッピー ディスクを複製するために使用されます。コピー先のディスク上のデータはすべて上書きされます。
構文:
DISKCOPY ドライブ1: [ドライブ2:] [/1] [/V] [/M]
drive1 コンピュータにフロッピー ドライブが 1 つしかない場合に、コピー元およびコピー先のディスクを含むドライブ。
drive2 コピー先のディスクを含むドライブ(drive1 と異なる場合)。
/1 ディスクの最初の面のみをコピーします。
/V 情報が正しくコピーされたことを確認します。
/M メモリのみを使用してマルチパス コピーを強制します。
DISKCOPY は、ソース ディスクをバイト単位でコピーして宛先ディスクにコピーすることにより、標準フロッピー ディスクを複製するように設計されています。DISKCOPY は、ハード ドライブ、CD、ネットワーク ドライブ、Zip、Jazz などのタイプのドライブでは機能しません。また、ソース ディスクと宛先ディスクは、同じタイプ、サイズ、容量でなければならないことにも留意してください。そうでない場合は、エラー メッセージが表示されます。
編集
これはシンプルなフルスクリーンの DOS 対応 ASCII テキスト エディターです。
構文
編集 [/B] [/H] [/R] [/S] [/nnn] [ファイル名]
/B モノクロモードを強制します。
/H ハードウェアで可能な最大行数を表示します。
/R ファイルを読み取り専用モードで読み込みます。
/S 短いファイル名の使用を強制します。
nnn バイナリ ファイルを読み込み、行を nnn 文字幅に折り返します。
ファイル名 ロードする初期ファイルを指定します。ワイルドカードも使用できます。
ショートカット キーのリストを表示するには、エディターの「ヘルプ」メニューを参照してください。
出口
Windows 環境の DOS の場合、EXIT コマンドは DOS シェルを終了するために使用されます。それ以外の場合は、一般的に言えば、MS-DOS コマンド インタープリタ (COMMAND.COM) を終了し、コマンド インタープリタを起動したプログラム (存在する場合) に戻ります。
構文
出口
FC
2 つのファイルまたはファイル セットを比較し、それらの違いを表示します。
構文:
FC [/スイッチ] ファイル1 ファイル2
スイッチ |
何をするのか |
/B |
バイナリ比較を実行します。2
つのファイルはバイトごとに比較され、不一致が見つかった後、ファイルの再同期は試行されません。これは、file1 の拡張子が .EXE、.COM、.SYS、.OBJ、.LIB、.BIN またはそれに類似している場合のファイル比較のデフォルト モードです。 |
/L |
ファイルを ASCII として比較します。2
つのファイルは行ごとに比較され、不一致が見つかった場合、FC はファイルの再同期を試みます。これは、file1に .EXE、.COM、.SYS、.OBJ、.LIB、.BIN などの拡張子がない場合にファイルを比較するためのデフォルト モードです。 |
/LBn |
内部行バッファの行数を設定します。
比較するファイルにこの数を超える連続した異なる行がある場合、FC は比較をキャンセルします。n のデフォルト値は100 です。 |
/nn |
ファイルが再同期されたと宣言される前に一致する必要がある連続行の数。ファイル内の一致する行の数がこの数より少ない場合、一致する行は差異として表示されます。nn のデフォルト値: 2。 |
/N |
ASCII 比較の行番号を表示します。 |
/あ |
ASCII 比較の出力を省略します。デフォルトではすべての異なる行が表示されますが、相違点の各セットの最初と最後の行のみが表示されます。 |
/C |
大文字と小文字を区別しません。 |
/T |
タブをスペースに拡張しません。
デフォルトでは、タブはスペースとして扱われ、1 タブ = 8 スペースとなります。 |
/で |
比較のためにタブと複数のスペースを 1 つのスペースに圧縮します。 |
file1 にワイルドカードが含まれている場合、該当するすべてのファイルが file2 と比較されます。file2 にもワイルドカードが含まれている場合、対応する file1 と比較されます。ほとんどの場合、バイナリ ファイルは、同じかどうかを調べるために比較されます。2 つのバイナリ ファイルが同一であるかどうかを確認するには、/LB1 スイッチを使用して出力を最小限に抑え、ASCII ファイルとして比較するのが最も簡単な方法です。
処理時間の大きな違いの例を見てみましょう。次の例を試すことで、FC を時間の節約とより良い方法で使用する方法がわかります。
FC c:\windows\command\xcopy.exe c:\windows\command\attrib.exe
FC c:\windows\command\xcopy.exe c:\windows\command\attrib.exe /L
FC c:\windows\command\xcopy.exe c:\windows\command\attrib.exe /L /LB1
ディスク
FDISK は、ハード ディスク上のパーティションに関する情報を設定および/または表示するために使用するメニュー ベースのユーティリティです。FDISK 環境で何を実行しているかを把握し、確実に実行する必要があります。そうしないと、パーティションの情報が削除または変更され、パーティション (つまりデータ) が失われる可能性があります。
ハード ディスクが DOS によって認識される前に、マスター ブート レコード (MBR) を確立する必要があります。FDISK は、ハード ドライブのパーティションのサイズと性質を定義して MBR を作成するために使用される MS-DOS ユーティリティです。MBR は、ディスクの領域を次のように定義します。
- プライマリパーティションおよび/または
- 拡張パーティション
拡張パーティションは、1 つ以上の論理 DOS ドライブを含むように指定する必要があります。パーティションを削除すると、パーティション上のすべてのデータが破壊されるか、少なくともデータの回復が非常に困難になります。この本の回復プログラミングのセクションで、Fdisk について詳しく説明します。
探す
FIND コマンドは、ファイル内のテキスト文字列を検索するために使用されます。指定されたファイルを検索した後、FIND は文字列を含むテキスト行を表示します。
構文:
FIND [/V] [/C] [/N] [/I] "文字列" "ファイル名1" "ファイル名2" "ファイル名..."
スイッチ |
何をするのか |
/V |
指定された文字列を含まないすべての行を表示します。 |
/C |
文字列を含む行数のみを表示します。/Vと一緒に使用すると、FIND は指定された文字列を含まない行数を表示します。 |
/N |
行番号を行とともに表示します。/Cと/Nを一緒に使用すると、/Nは無視されます。 |
/私 |
文字列内の文字の大文字と小文字は無視されます。デフォルトでは、FIND は大文字と小文字を区別し、完全に一致する文字を検索します。 |
弦 |
検索するテキスト文字列。文字列は引用符で囲む必要があります。 |
ファイル名 |
検索するファイル。ファイル名にスペースが含まれていない場合は、引用符で囲む必要はありません。 |
ファイル名が指定されていない場合、FIND は標準ソース (通常はキーボード、パイプ、またはリダイレクトされたファイル) からテキスト入力を検索します。ワイルドカードはファイル名では受け入れられません。また、引用符は文字列を区切るために使用されるため、検索パターンの一部として文字列内で使用することはできません。
文字列内に引用符を含めるには、FIND が検索文字列内で引用符として解釈する二重引用符 ("") の「特殊文字」を使用する必要があります。いくつか例を見てみましょう。
ファイル「NOTES.TXT」から文字列「homework」を含むすべての行を表示するには:
「宿題」の notes.txt を検索
文字列に引用符が含まれている場合は、引用符を 2 つ重ねる必要があります。
検索「「BE Final year」の結果が表示されていません。」 Result.doc
形式
MS-DOS で使用するためにディスクをフォーマットします。フォーマット後はディスクに保存されているデータが消去されることを常に覚えておいてください。フォーマット コマンドを使用する前には注意して確認し、FORMAT コマンドで入力するドライブ文字を必ず確認してください。
構文:
ドライブをフォーマット: [/スイッチ]
スイッチ |
何をするのか |
/V[:ラベル] |
ボリューム ラベルを指定します。/V スイッチが省略されているか、ラベルが指定されていない場合は、フォーマットの完了後にボリューム ラベルのプロンプトが表示されます。ボリューム ラベルが不要な場合は、次のように指定することでプロンプトを回避できます: /V:""
ラベルが指定されていて、セッションで複数のディスクがフォーマットされている場合は、すべてのディスクに同じボリューム ラベルが付けられます。 |
/質問 |
以前にフォーマットされたディスクのクイック フォーマットを強制します。ディスクのファイル アロケーション テーブル (FAT) とルート ディレクトリは削除されますが、不良領域のスキャンは行われません。 |
/S |
フォーマットされたディスクにシステム ファイルをコピーして、ブート ディスクにします。 |
/B |
フォーマットされたディスク上にシステム ファイル用の領域を割り当てます。 |
/F:サイズ |
ドライブの設計容量以外の容量にディスクをフォーマットします。サイズは 360、720、1.2、1.44、2.88 のいずれかです。 |
/T:トラック |
ディスク面あたりのトラック数を指定します。 |
/N:セクター |
トラックあたりのセクター数を指定します。 |
/1 |
フロッピー ディスクの片面をフォーマットします。 |
/4 |
高密度ドライブで 5.25 インチ 360K フロッピー ディスクをフォーマットします。 |
/8 |
トラックごとに8セクターをフォーマットします |
/C |
現在「不良」とマークされているクラスターをテストします。デフォルトでは、ディスクに「不良」とマークされているクラスターが含まれている場合、FORMAT はクラスターを再テストせず、単に「不良」とマークされたままにします。 |
デフォルトでは、/Q スイッチが使用されない限り、ディスク上の各セクターはフォーマット プロセス中にチェックされ、セクターがデータを適切に保存できるかどうかが確認されます。
不良セクタが見つかった場合は、マークが付けられ、使用されません。フォーマットが完了すると、ディスクの合計容量、不良としてマークされた領域、使用済み領域、およびファイルに使用可能な領域を示すメッセージが表示されます。FORMAT は、SUBST コマンドを使用して作成された仮想ドライブでは使用できません。
フロッピーを再フォーマットする簡単な方法は次のとおりです。
レン /? |フォーマット /q/v:"" > nul
ren /? の部分は、FORMAT のプロンプトに応答して、大量の冗長なデータとともに「enter」を入力し、その後に「n, enter」を入力します。>nul は、2 つのコマンドのやや乱雑な混在した出力が表示されるのを防ぎます。
ラベル
LABEL コマンドは、ディスクのボリューム ラベルを作成、変更、または削除するために使用されます。ディスクのボリューム ラベルは、存在する場合はボリューム シリアル番号とともにディレクトリ リストの一部として表示されます。
構文:
LABEL [ドライブ:] [ラベル]
ドライブ: 名前を付けるディスクの場所です。
ラベル 新しいボリューム ラベル。
なし 現在のディスクラベルが存在する場合はそれを表示します。新しいラベルを入力するか、既存のラベルを削除するように求められます。
MD (または MKDIR)
ディレクトリを作成します。MD と MKDIR は同義語で、同じタスクを実行します。
構文:
MD [パス] ディレクトリ名
もっと
MORE コマンドは、パイプまたはリダイレクトされたファイルから標準入力を読み取り、一度に 1 画面分の情報を表示します。このコマンドは、通常、長いファイルやディレクトリ出力などを表示するために使用されます。
構文:
MORE [パス] ファイル名
詳細 < [パス] ファイル名
コマンド | MORE [パス] [ファイル名]
command 出力が表示されるコマンド。
一度に 1 画面ずつ表示するファイル名
MORE filename と MORE < filename は同義であり、TYPE filename | MORE と同等です。いずれの場合も、filename は一度に 1 画面分表示されます。「Enter」を押すと次の画面が表示されます。Ctrl-C を押すといつでも表示を終了できます。MORE は、画面に収まるようにテキストを自動的に折り返します。
BIGFILE.TXT という大きなテキスト ファイルの例を考えてみましょう。次の 3 つのコマンドは同じタスクを実行します。
bigfile.txt と入力 | 詳細
詳しくはbigfile.txtをご覧ください
詳細 < bigfile.txt
動く
ファイルとディレクトリを、同じドライブまたは異なるドライブ上のある場所から別の場所に移動します。
構文:
MOVE [/Y | /-Y] [パス] ファイル名 保存先
/Y ディレクトリの作成または保存先の上書きを確認するプロンプトを抑制します。これは、バッチ ファイルで MOVE が使用される場合のデフォルトです。
/-Y ディレクトリの作成または保存先の上書きを確認するためのプロンプトを強制的に表示します。これは、コマンド ラインから MOVE を使用する場合のデフォルトです。
移動するファイルが複数ある場合、宛先パスはディレクトリである必要があり、ファイルは元の名前を保持します。
RD (または RMDIR)
空のディレクトリを削除します。RD と RMDIR は同義であり、同じタスクを実行します。
構文:
RD [パス] ディレクトリ名
パス内の最初のディレクトリ名の前にバックスラッシュ ( \ ) がある場合、そのディレクトリは現在のドライブのルート ディレクトリのサブディレクトリと見なされます。 パス内の最初のディレクトリ名の前にバックスラッシュがない場合、そのディレクトリは現在のディレクトリのサブディレクトリと見なされます。
また、RD は空のディレクトリのみを削除します。ファイルやサブディレクトリを含むディレクトリで RD を使用すると、コンピューターにエラー メッセージが表示されます。
スキャンディスク
SCANDISK ディスク修復プログラムを実行します。
構文
現在のドライブを確認して修復するには:
スキャンディスク
ディスクがクラッシュしたり、MBR、DBR、FATなどのブートセクターに論理エラーがあったり、ルートディレクトリが破損している場合は、CHKDSKやSCANDISKなどのディスクスキャンプログラムを使用してディスクをスキャンしないでください。データ情報が歪んでしまい、回復が困難になる可能性があります。これだけでなく、データを完全に回復できない可能性があります。 |
通常、DOS版のスキャンディスクはWindowsの実行中には実行されません。エラーを通知するのではなく、自動的にWindows版のスキャンディスクに制御を移します。
タイプ
TYPE コマンドは、ASCII テキスト ファイルの内容を画面に表示するために使用されます。
構文:
ファイル名を入力
テキスト ファイルを一度に 1 画面ずつ表示するには、TYPE コマンドの出力を MORE にパイプします。いくつか例を見てみましょう。
ROMI.TXTの内容を表示するには:
タイプ romi.txt
ファイルが長すぎて 1 つの画面に収まらない場合は、次の操作を行います。
romi.txt と入力 | 詳細
コピー
このコマンドは、重要なデータのバックアップを作成する場合や、ファイルやディレクトリ ツリーをコピーするためにドライブ全体のイメージを作成する場合に最も重要なコマンドの 1 つです。
XCOPY は COPY コマンドに似ていますが、ワイルドカードを使用するときにコピーされる内容を正確に制御できるスイッチがさらに多くあります。
構文:
XCOPY ソース [宛先] [/スイッチ]
ソース コピーするファイルとディレクトリ。ワイルドカード (* または ?) を使用できます。
destination 新しいファイルのパスと名前。destination を省略すると、ファイルは現在のディレクトリにコピーされます。destination が存在しないディレクトリを参照する場合、ディレクトリが作成されます。デフォルトでは、XCOPY はソース ディレクトリ内のファイルのみを操作します。
スイッチ |
何をするのか |
/そして |
ソースの完全なサブディレクトリ構造とその中のすべてのファイルをコピーします。 |
/S |
ソースの完全なサブディレクトリ構造とその中のすべてのファイルをコピーしますが、空のサブディレクトリはコピーしません。 |
/T |
ソースのサブディレクトリ構造をコピーしますが、ファイルはコピーせず、空のサブディレクトリもコピーしません。空のサブディレクトリを含めるには、/Eスイッチを使用します。 |
/あ |
アーカイブ属性が設定されたファイルのみをコピーします。 |
/マ |
アーカイブ属性が設定されたファイルのみをコピーし、ソース ファイルのアーカイブ属性をオフにします。 |
/H |
隠し属性およびシステム属性が設定されたファイルが含まれます。 |
/K |
読み取り専用属性が設定されている場合は、それをリセットせずにファイルをコピーします。 |
/R |
読み取り専用ファイルを上書きします。 |
/で |
コピー先に既に存在するソースのファイルのみをコピーします。/D と一緒に使用して、ファイルをより新しいバージョンに更新できます。 |
/D:日付 |
'最終変更日'がdateと同じかそれ以降のファイルのみをコピーします。date が指定されていない場合は、コピー先ディレクトリ内の同名のファイルのうち、ソース内のファイルよりも'最終変更日' が新しいファイルを除いて、すべてのファイルがコピーされます。 |
/私 |
宛先をディレクトリとして扱うように強制します。ファイル/ディレクトリのプロンプトは抑制されます。 |
/そして |
プロンプトを表示せずに既存のファイルを上書きします。 |
/-そして |
既存のファイルを上書きする前にプロンプトを表示します。 |
/で |
ファイルのコピーを開始する前にプロンプトを表示します。 |
/P |
各宛先ファイルを作成する前に確認を求めます。 |
/F |
コピー中にソースファイルとコピー先ファイルの完全な名前を表示します。 |
/質問 |
コピー中にファイル名やその他のメッセージは表示されません。 |
/C |
エラーが発生してもコピーを続行します。 |
/L |
コピーするファイルを表示しますが、実際にはコピーしません。 |
/N |
生成された短い名前を使用してコピーします。これは、VFAT ボリュームから FAT ボリュームにコピーするときに必要です。 |
/V |
新しいファイルが読み取り可能であることを確認します。 |
デフォルトでは、XCOPY はシステム属性または隠し属性が設定されているファイルをコピーしません。また、読み取り専用ファイルのコピーには読み取り専用属性が設定されておらず、コピーされたすべてのファイルにはアーカイブ属性が設定されています。デフォルトでは、XCOPY はコピー先のファイルをソースの同じ名前のファイルで上書きする前にプロンプトを表示します。
XCOPY は、宛先がディレクトリかファイルかが不明な場合にも指示を求めます。宛先が既存のディレクトリを参照していない場合、または「\」で終わっている場合は不明瞭です。たとえば、name.ext の宛先はファイルまたはディレクトリのいずれかになります。次の例で、これをよりよく理解しましょう。
メモ ディレクトリからドライブ a のディスクにすべてのファイルとサブディレクトリをコピーするには:
xcopy c:\notes a: /s
または
xcopy c:\notes\*.* a: /s
2002 年 12 月 9 日以降に作成または変更されたすべてのファイルとサブディレクトリを notes ディレクトリからドライブ a のディスクにコピーするには:
xcopy c:\notes a: /s /d:9/12/02
「ドライブイメージ」の作成
ドライブ全体のバックアップを別のドライブに作成する場合、または「オペレーティング システムとその他のインストール済みソフトウェアを含む」ドライブのデータのイメージを別のハード ディスクに作成する場合は、次の操作を試してください。
C:\> Xcopy * D:\I\E\C\H
ここで、D:は別のハード ディスクのアクティブ パーティションであると想定されます。これにより、ソースドライブの全データ (インストールされているオペレーティング システム、ソフトウェア、ドキュメントなどを含む) がイメージとして宛先ドライブにコピーされます。
その後、コピー先ドライブを使用してコンピューターを起動すると、ソースドライブと同じように動作し、ソースドライブに保存されていたすべてのデータが表示されます。
仕様のショートカット、ワイルドカード、リダイレクト
ショートカット
多くの DOS コマンドは、ディレクトリ間を移動するときに特定のショートカットを認識します。最もよく知られているものは次のとおりです。
ショートカット |
なぜ使うのか |
。 |
現在のディレクトリを参照する |
.. |
親ディレクトリを参照する |
\ |
現在のドライブのルート ディレクトリを参照します。 |
ドライブ: |
ドライブ上の現在のディレクトリを参照する |
例を使って理解してみましょう。c:ドライブの現在のディレクトリがc:\windows\java\notesの場合、a:\>プロンプトでdir c:と入力すると、c:\windows\java\notes内のファイルが一覧表示されます。
- 現在のドライブとディレクトリが c:\data\docs\letters の場合、次のようになります。
- 現在のドライブとディレクトリがc:\の場合、次のようになります。
ワイルドカード
ATTRIB、COPY、DEL、DELTREE などの多くの DOS コマンドでは、「ワイルドカード」 (* および ?) を使用できます。一般に、* は複数の文字を指し、? はファイル名またはディレクトリ名の 1 つの文字を指します。
これが、これらの文字をファイル名に使用できない理由です。これらの特殊文字は / \ : * ? < > “ | であり、ファイル名に挿入しないでください。次の表は、ワイルドカードの使用方法を示しています。
ワイルドカード |
何をするのか |
*.* |
すべての拡張子を持つすべてのファイル。 |
*データ*。* |
名前のどこかに「data」が含まれるすべてのファイル。 |
*配列。* |
名前が「array」で終わるすべてのファイル |
メモ?.cpp |
「note」に 1 文字を加えた名前で、拡張子が .CPP であるすべてのファイル。このファイルは note1.cpp である可能性がありますが、note.cpp ではありません。 |
?t*.* |
名前の2番目の文字が「t」であるすべてのファイル |
すべてのコマンドがワイルドカードをまったく同じ方法で処理するわけではないことに注意してください。たとえば、DIR * と DIR *.* は同義語と見なされますが、DEL * は拡張子のないファイルのみを削除します。
引用符 (" ") で囲まれたスペースは、EDIT および DEL によって有効なファイル指定として受け入れられますが、その方法は大きく異なります。
EDIT は、現在のディレクトリの名前を使用してファイルを開きます。したがって、現在のディレクトリが D:\windows\java\notes の場合、EDIT " " はそのディレクトリに "notes" というファイルを作成します。
DEL は " " を *.* として認識し、ディレクトリ内のすべてのファイルを削除する前に確認を求めます。EDIT と同様に、引用符間のスペースの数は重要ではないようですが、スペースがない場合、必要なパラメータが不足していることを示すエラー メッセージが表示されます。
EDIT とは異なり、パスを含めることができ、その場合、引用符の間にスペースは必要ありません。つまり、現在のディレクトリ内のすべてのファイルを削除するには、次のようにします。
DEL ./"" は機能しますが、DEL "" ではエラー メッセージが表示されます。
COPY も " " を *.* として認識し、DEL と同様にパスを受け入れます。DEL とは異なり、パスが含まれている場合でも、引用符の間には常にスペースが必要です。
リダイレクション
多くの DOS コマンドは、出力を画面に送信したり、ユーザーからの入力を要求したりします。リダイレクトは、コマンドの出力をプリンタやファイルなどの他のデバイス、または別のプログラムやコマンドに送ることができるメカニズムです。
リダイレクト機能は 4 つあります。
> |
出力をリダイレクトする |
>> |
追加 |
< |
入力をリダイレクトする |
| |
パイプ |
>
コマンドの出力を「標準出力デバイス」(通常はモニター) から別のデバイス (プリンターなど) またはファイルにリダイレクトします。
構文:
出力をデバイスにリダイレクトするには:
コマンド > デバイス
出力をファイルにリダイレクトするには:
コマンド > ファイル名
許容されるデバイス名は、CON (モニター)、PRN (LPT1 - プリンターと想定)、LPT1 - 3 (パラレル ポート - 通常はプリンターに接続)、COM 1 - 4 (シリアル ポート)、および NUL (電子空白) です。
認識されたデバイス以外のものが指定された場合は、ファイル名であるとみなされます。指定されたファイル名のファイルがすでに存在する場合は、警告なしで上書きされます。これをよりよく理解するために、いくつかの例を見てみましょう。
おそらく、このリダイレクト機能の最も一般的な用途は、ディレクトリ リストをプリンタに送信したり、ファイルとして保存したりすることです。Windows ディレクトリ内のすべてのファイルの並べ替えられたディレクトリ リストを印刷するには、次のようにします。
DIR c:\windows /o/a > PRN
同じディレクトリのディレクトリ リストを含むファイルを作成するには:
ディレクトリ c:\windows /o/a > d:\windows.txt
>>
コマンドからの出力を指定されたファイルに追加します。
構文:
コマンド >> ファイル名
Filename が存在しない場合は作成されます。Filename が存在する場合は、元の内容が上書きされる > 関数とは異なり、コマンドからの出力がそれに追加されます。例を使って理解を深めましょう。
以前に作成したディレクトリに c:\windows\system ディレクトリ内のファイルのディレクトリ リストを追加するには:
ディレクトリ c:\windows\system /o/a >> d:\windows.txt
<
デフォルト以外のソースからコマンドに入力を送信します。デフォルトのソースは通常、キーボードです。
構文:
コマンド < データソース
これは、バッチ プログラミングで一般的に使用されます。例を使って理解してみましょう。DEBUG コマンドの次の手順は、MBR のバックアップを作成するために使用されます。ここで、MBR.BIN は、この実行後に作成されるバックアップ ファイルの名前です。
mbr.bin をデバッグする
あ
MOVDX、6000
MOV IS、DX
排他的論理和 BX、BX
MOV DX、0080
ムービーCX,0001
MOV AX、0201
INT 13
知能20
<Enter>(何も入力しない)
グ
RCX
200
6000:0000で
質問
これを行うには、バッチ ファイルを使用して 2 つのバッチ ファイルを作成します。1 つは DEBUG コマンドを実行するための命令を含み、もう 1 つは DEBUG コマンドに入力として渡されるその他の命令を格納するためのものです。このファイルは最初のファイルのデータ ソースになります。方法を見てみましょう:
C:\ mbr.bat
ここで、この MBR.BAT に何が含まれているか確認してみましょう。
MBR.BAT |
デバッグ mbr.bin < ttsource.bat |
そして、明らかに、TTSOURCE.BAT という名前の 2 番目のファイルは、このためのデータ ソースとして機能し、次の命令が含まれます。
TTSOURCE.BAT |
あ |
MOVDX、6000 |
MOV IS、DX |
排他的論理和 BX、BX |
MOV DX、0080 |
ムービーCX,0001 |
ムーブメントアックス、0201 |
INT 13 |
知能20 |
<enter> (何も入力しないでください) |
グ |
RSH |
200 |
6000:0000時 |
で |
|
パイプは、プログラムまたはコマンドの出力を 2 番目のプログラムまたはコマンドにリダイレクトします。
構文:
チーム1 |チーム2
長いテキスト ファイルを入力する例を見てみましょう。
タイプファイル.txt |詳細