Hoofdstuk – 7
Noodzakelijke DOS-opdrachten
Invoering
Hoewel we proberen de gegevens van de schijf te herstellen, hangt het van het geval van gegevensverlies af hoeveel moeite het kost om het verlies te herstellen. In veel gevallen is het mogelijk dat als we voldoende kennis hebben van enkele belangrijke DOS (Disk Operating System)-commando's, we gegevens met minder inspanningen kunnen herstellen.
In sommige gevallen is het mogelijk dat we gegevens kunnen herstellen zonder te programmeren, alleen door deze commando's met een lastige geest te gebruiken.
Ik neem aan dat je niets weet over DOS en zijn commando's. In dit hoofdstuk van de introductie van DOS-commando's zullen we alleen leren over die commando's die ons kunnen helpen bij het herstellen van onze gegevens. Allereerst zullen we een blik werpen op de evolutie van MS – DOS.
Korte geschiedenis
Het MS – DOS-besturingssysteem is gebaseerd op de Intel 8086-microprocessorfamilie. MS – DOS is geëvolueerd van een eenvoudige programmalader naar een geavanceerd, stabiel besturingssysteem voor personal computers.
Microsoft Disk Besturingssysteem (MS-DOS) Versie 1.0
IBM ontwikkelde deze computer begin jaren 80. Microsoft heeft MS-DOS 1.0 ontwikkeld. Het werd uitgebracht in augustus 1981, bestond uit 4000 regels broncode in assembler en draaide in 8 kilobyte geheugen.
Kort daarna, in 1982, werd MS-DOS versie 1.1 uitgebracht, die werkte met dubbelzijdige diskettes van 320 kb. Versies van DOS die door IBM op de markt worden gebracht, worden IBM-DOS of PC-DOS genoemd.
MS-DOS versie 2.0
Toen IBM begon met de ontwikkeling van een harde schijf van 10 megabyte, begon Microsoft te werken aan de ontwikkeling van versie 2.0 van DOS, die zou worden ontworpen om de harde schijf te ondersteunen. Tot nu toe was DOS 1.0, in overeenstemming met zijn erfgoed, ontworpen voor een diskette-omgeving. Een van de belangrijkste beperkingen in DOS 1.0 is dat de directory beperkt is tot maximaal 64 bestanden.
MS-DOS versie 2.0 is zo ontworpen dat het een hiërarchisch ontworpen bestandssysteem bevat. Een hiërarchisch bestandssysteem is belangrijk omdat elke map zowel bestanden als andere submappen kan bevatten. Hiërarchische bestandssystemen waren al in gebruik in het UNIX-besturingssysteem, dat werd gebruikt als ontwikkelplatform van het MS-DOS/IBM-DOS-besturingssysteem. In feite zijn sommige van de onderliggende concepten van MS-DOS vergelijkbaar met hun tegenhangers in UNIX.
MS-DOS versie 3.0 tot 5.0
Versie 3.0 werd in augustus 1984 uitgebracht om de IBM PC/AT te ondersteunen. Versie 3.1 werd uitgebracht in november 1984 en bevatte netwerkondersteuning. De versie 3.2 van januari 1986 ondersteunde 3,5-inch schijven. In 1987 volgde IBM versie 3.3, met als voornaamste doel de IBM PS/2-reeks computers te ondersteunen.
De MS-DOS versie 3.3 heeft veel nieuwe functies en commando's toegevoegd. Compaq versie 3.31 van DOS toegestaan voor partities op de harde schijf die groter zijn dan 32 megabyte.
MS-DOS versie 4.01 leest ook partities groter dan 32 megabyte. Oorspronkelijk uitgegeven als MS-DOS 4.0, resulteerden enkele kleine bugs in de geüpgradede versie 4.01 met verschillende fixes. Deze versie voegde volledige schermen toe, een menugestuurde interface genaamd DOS SHELL en extra ondersteuning voor Expanded Memory Specifications.
Versie 5.0 is ontworpen als vervanging voor alle voorgaande versies van DOS. Met DOS 5.0 verkochten zowel IBM als Microsoft dezelfde DOS, zelfs de documentatie was vergelijkbaar. De geheugenvereisten waren aanzienlijk verminderd. Er zijn aanzienlijke verbeteringen aangebracht in de ondersteuning van uitgebreid en uitgebreid geheugen.
De DOS-editor "EDIT" werd meegeleverd met deze versie van DOS. De DOS SHELL is volledig nieuw. QBASIC is geïntroduceerd om BASICA en GWBASIC te vervangen. Deze versie bood een manier om gegevens te herstellen die ten minste een deel van de tijd per ongeluk verloren waren gegaan.
MS-DOS versie 6.0
Versie 6.0 bevatte veel nieuwe programma's om de prestaties van DOS te verbeteren. Ze omvatten:
- Microsoft Double Space, een geïntegreerd programma voor schijfcompressie dat de beschikbare schijfruimte vergroot door bestanden te comprimeren
- Microsoft Mem Maker, een programma voor geheugenoptimalisatie dat het gemakkelijk maakt om apparaatstuurprogramma's en geheugenresidente programma's van conventioneel geheugen naar het bovenste geheugengebied te verplaatsen
- Een verbeterd EMM386.EXE-apparaatstuurprogramma dat toegang biedt tot meer bovenste geheugenblokken
- Verbeterde opdrachten loadhigh en devicehigh waarmee u de geheugenregio kunt specificeren waarin een programma moet worden geladen
- Microsoft Backup, een programma waarmee u gemakkelijk een back-up van uw gegevens kunt maken
- Microsoft Anti-Virus, een programma dat verschillende computervirussen kan identificeren en verwijderen
- Microsoft Undelete, een verbeterd programma waarmee u een of drie beschermingsniveaus kunt kiezen voor het geval u per ongeluk een bestand verwijdert,
- De mogelijkheid om meer dan één configuratie in het CONFIG.SYS-bestand op te nemen. De mogelijkheid om opstartcommando's te omzeilen wanneer u uw computer aanzet
- MS-DOS Help, een complete online verwijzing naar MS-DOS-commando's
MS-DOS versie 7.0 (Windows 95)
DOS wordt geleverd met Windows 95 voor achterwaartse compatibiliteit met DOS- en Windows 3.x-toepassingen. Laten we de evolutie van MS – DOS naar Windows bekijken in de volgende tabel:
MS – DOS Version |
Notes and Comments |
MS- DOS 1.0 |
First operating system on IBM PC in 1981 |
MS- DOS 1.25 |
Double sided disk support and bug fixes added |
MS- DOS 2.0
|
Introduced with IBM PC/XT in 1983 and having the support of hierarchical file structure and hard disks added. |
MS- DOS 2.01 |
2.0 with international support |
MS- DOS 2.11 |
2.01 with bug fixes |
MS- DOS 2.25 |
Support for Extended Character sets |
MS- DOS 3.0 |
Support for 1.2MB floppy disks and larger hard disks added |
MS- DOS 3.1 |
Support for Microsoft networks added |
MS- DOS 3.2 |
Support for 3.5 inches disks added |
MS- DOS 3.3 |
Generalized code page (font) support |
MS- DOS 4.0 |
Support for logical volumes larger then 32 MB and Visual shell |
Windows 1.0 |
Graphical user interface for MS – DOS |
Windows 2.0 |
Compatibility with OS/2, Presentation Manager |
Windows 95 |
Used Version 4.00.950 |
Windows 95 Se |
Used Version 4.00.1111 |
Windows 98 |
Used Version 4.10.1998 |
Windows 98 Second Edition |
Used Version 4.10.2222 |
Windows Millennium |
Used Version 4.90.3000 |
Windows NT |
Used Version 4.0 |
Windows 2000 |
Used Version 5.00.2195 |
Windows XP |
Used Version 5.1.2600 |
Noodzakelijke commando's
Laten we enkele belangrijke commando's leren die nuttig kunnen zijn terwijl we proberen gegevens te herstellen door middel van programmeer- en niet-programmeertechnieken:
ATTRIB
De opdracht ATTRIB wordt gebruikt om een of meer van de vier attributen, alleen-lezen, archief, systeem en verborgen die aan bestanden en mappen kunnen worden toegewezen, weer te geven, in te stellen of te verwijderen. Het wordt meestal gebruikt om alleen-lezen, verborgen en systeemkenmerken te verwijderen, zodat een bestand kan worden verplaatst of verwijderd, of om ze zo in te stellen dat dit niet kan.
Syntaxis:
Om de attribuutinstellingen van alle bestanden in de huidige directory weer te geven:
ATTRIB
To display the attributes of a directory:
ATTRIB directoryname
To display the attributes of a file:
ATTRIB filename
To set or remove attributes of a file or directory:
ATTRIB [ + | - R] [ + | - A] [ + | - S] [ + | - H] [directory|filename] [/S]
+ Sets an attribute, - Clears an attribute.
R |
Read-only file attribute. |
A |
Archive file attribute. |
S |
System file attribute |
H |
Hidden file attribute. |
/S |
Processes files in all directories in the specified path. |
Met het kenmerk Alleen-lezen kan een bestand worden geopend maar niet worden gewijzigd. Het systeemattribuut is normaal gesproken gereserveerd voor bestanden die nodig zijn om DOS of Windows correct te laden. Bestanden en directory's met de attributenset Verborgen worden normaal gesproken niet weergegeven in directorylijsten of Open Files-dialoogvensters.
De gebruikelijke reden voor het verbergen van mappen is omdat ze belangrijk zijn voor de werking van het systeem of het programma en niet mogen worden verwijderd of verplaatst bij oppervlakkige opruimacties. Verborgen en systeemmappen hebben vaak ook het kenmerk Alleen-lezen ingesteld.
Meerdere attributen kunnen worden ingesteld of gewist door schakelaars te combineren, gescheiden door spaties. Hoewel aan beide bestanden en mappen attributen kunnen worden toegewezen en gewist met ATTRIB, zijn er verschillen in de manier waarop ze zich gedragen - de meest voor de hand liggende is dat jokertekens (? en *) kunnen worden gebruikt om de attributen voor een groep bestanden weer te geven of te wijzigen terwijl mappen volledig moeten worden genoemd. We zullen later in dit hoofdstuk meer te weten komen over wildcards en snelkoppelingen.
Als u een bestandskenmerk instelt op Systeem, Verborgen of Alleen-lezen, wordt voorkomen dat het bestand wordt verwijderd of verplaatst met de opdrachten DEL, ERASE of MOVE, maar worden de bestanden niet beschermd tegen DELTREE of FORMAT. Hoewel het alleen-lezen-kenmerk van een directory kan worden ingesteld, lijkt dit weinig zin te hebben.
Ten eerste is het attribuut alleen van toepassing op de directory en niet op de bestanden erin. Ook het instellen van een map op alleen-lezen voorkomt niet dat deze wordt verwijderd, maar in Windows Verkenner wordt er een waarschuwing weergegeven voordat de map wordt verwijderd of verplaatst.
Om de attributen van een bestand met de naam "readme" weer te geven:
ATTRIB readme
To assign the Read-Only attribute to the file "readus.txt", use:
ATTRIB readus.txt +R
To remove the System and Hidden attributes from "data19.txt":
ATTRIB -S -H data19.txt
To hide the directory "c:\mynotes"
ATTRIB +H c:\mynotes
To hide the files, but not the directories in the C:
ATTRIB +H c:*.*
CD (or CHDIR)
Changes (or displays) the current directory on the specified drive.
Syntax:
To display the current directory:
CD [drive:]
To change the current directory:
CD path
Pad Verandert de huidige map in pad. Elke schijf heeft zijn eigen "huidige map" die "actueel" blijft totdat het wordt gewijzigd, waardoor de huidige map van station c: wordt gewijzigd, heeft dit geen invloed op de huidige mapstatus van een ander station. Om naar de huidige map op een ander station te gaan, voert u gewoon de stationsletter en dubbele punt in.
Als het huidige station c: is, om de directory te openen "
c:\windows\java"
CD \windows\java
Als de huidige map al "c:\windows" is, is het enige dat nodig is:
cd java
Om de huidige map "c:\windows\java" naar de bovenliggende map "c:\windows":
CD..
Stel dat u zich momenteel in de map "c:\windows\java\notes\klip\" bevindt, en als u nu rechtstreeks naar de Windows-map wilt springen, verhoogt u gewoon de twee extra punten (..) die u in de vorig geval, zoals dit
CD….
Als de huidige map op de c:-drive "c:\windows\notes" en de huidige map op het e:-station is "e:\movie" en kopieer vervolgens alle bestanden van "e:\movie"; naar "c\windows\notes":
KOPIE e:*.* c:
Om alle bestanden te kopiëren van "e:\downloads" naar de hoofdmap van c:
COPY e:*.* c:\
CHKDSK
CHKDSK wordt gebruikt om de status van een schijf te controleren, enkele schijffouten op te lossen en een statusrapport weer te geven met eventuele fouten in de bestandstoewijzingstabel (FAT) en de directorystructuur. CHKDSK geeft ook een samenvatting van het schijfgebruik weer. Als er fouten op de schijf worden gevonden, geeft CHKDSK een waarschuwingsbericht weer.
Syntax:
CHKDSK [path] [/F] [/V]
Pad Specificeert het station en de map die moeten worden gecontroleerd.
/F Herstelt fouten op de schijf.
/V Toont het volledige pad en de naam van elk bestand op de schijf
SCANDISK kan een veel breder scala aan schijfproblemen betrouwbaar detecteren en oplossen en heeft over het algemeen de voorkeur boven de ietwat verouderde CHKDSK. De schakeloptie /F (voor het herstellen van gevonden fouten) mag niet worden gebruikt terwijl een ander programma draait dan DOS en CHKDSK zelf.
CHKDSK kan niet worden gebruikt op schijven die zijn gemaakt met SUBST, en ook niet op netwerkschijven. In win98 controleert CHKDSK de schijf niet, maar biedt wel enkele basisgegevens
U mag de schijf niet scannen met CHKDSK of SCANDISK of een ander schijfscanprogramma als uw schijf is gecrasht of als er een logische fout is in uw opstartsectoren zoals MBR, DBR, FAT of rootdirectory's zijn beschadigd. Het kan ervoor zorgen dat u gegevensinformatie vervormd en kan het moeilijk maken om deze te herstellen. Niet alleen dit, u kunt de gegevens mogelijk niet volledig herstellen. |
CLS
Wist het scherm en laat alleen de opdrachtprompt en cursor over.
Syntax:
CLS
COMMAND
Start een nieuwe kopie van de Command Interpreter.
Syntaxis:
COMMANDO [pad] [apparaat] [/Switches]
Pad Drive en directory met command.com. Dit moet worden opgegeven, tenzij command.com zich in de hoofdmap bevindt.
Apparaat Apparaat om te gebruiken voor invoer en uitvoer van opdrachten. Standaard zijn dit het toetsenbord en de monitor
/P Maakt de nieuwe Command Interpreter permanent.
/E:x Stelt de initiële omgevingsgrootte in [bytes]. x moet worden ingesteld tussen 256 en 32.768 bytes. De standaardwaarde is: 256 bytes.
/L:y Lengte interne buffers [bytes]. y moet worden ingesteld tussen 128 en 1024 bytes. Deze omschakeling wordt alleen geaccepteerd als de Command Interpreter permanent is. De /P-schakelaar moet ook worden ingesteld.
/U:z Lengte invoerbuffer [bytes]. z moet worden ingesteld tussen 128 en 255 bytes. De standaardwaarde is: ? Deze omschakeling wordt alleen geaccepteerd als de Command Interpreter permanent is. de schakeloptie /P moet ook worden ingesteld.
/MSG Slaat alle foutmeldingen op in het geheugen. Deze omschakeling wordt alleen geaccepteerd als de Command Interpreter permanent is. De /P-schakelaar moet ook worden ingesteld.
/LOW Dwingt COMMAND om in een laag geheugen te houden
/Y Doorloopt het batchprogramma gespecificeerd door /C of /K
/C-opdracht Voert opdracht uit en sluit af. Dit moet de laatste schakelaar op de opdrachtregel zijn.
/K-opdracht Voert opdracht uit en blijft actief. Dit moet de laatste schakelaar op de opdrachtregel zijn.
COPY
COPY wordt voornamelijk gebruikt om een of meer bestanden naar een andere locatie te kopiëren, maar het kan ook worden gebruikt om bestanden te combineren (toevoegen en samenvoegen) en om rechtstreeks naar een bestand, printer of ander apparaat te typen.
Syntax:
COPY [/A | /B] source [/A | /B] [+ source [/A | /B] [+ ...]]
[destination [/A | /B]] [/V] [/Y | /-Y]
source De te kopiëren bestanden. Hoewel dit een enkele parameter moet zijn, kan het meerdere bestanden bevatten die zijn gespecificeerd met jokertekens (* of ?). Het kan ook een geldig apparaat zijn (bijv. CON)
like COPY CON NOTES.TXT
schrijf of kopieer nu de tekst en kom eruit door de toets Ctrl+Z in te voeren.
bestemming De directory en/of bestandsnaam voor de nieuwe bestanden. Als de bestemming niet is opgegeven, wordt de bron gekopieerd naar de huidige map met dezelfde naam en aanmaakdatum als het origineel. Als de bron in de huidige map staat, wordt er een foutmelding weergegeven waarin staat dat het "bestand niet naar zichzelf kan worden gekopieerd".
bestand /A Dwingt COPY om het bestand als een ASCII-tekstbestand te behandelen.
bestand /B Dwingt COPY om het bestand als een binair bestand te behandelen.
/V Controleert of nieuwe bestanden kunnen worden gelezen.
/Y Geen waarschuwing voor het overschrijven van een bestand.
/-Y Geeft een waarschuwing weer en vereist bevestiging voordat
een bestand overschrijven.
Bij gebruik vanaf de opdrachtregel en als een bestand gespecificeerd in bestemming al bestaat op de gespecificeerde locatie, zal COPY standaard een waarschuwingsbericht weergeven en bevestiging vereisen voordat het oude bestand wordt overschreven. Aan de andere kant, wanneer COPY wordt gebruikt in een batchbestand, worden alle bestaande bestanden zonder waarschuwing overschreven.
Dit standaardgedrag kan worden gewijzigd door de /Y | . vooraf in te stellen /-Y-schakelaar in de COPYCMD-omgevingsvariabele en overruled met behulp van de /Y | /-Y schakelaar op de opdrachtregel.
COPY kopieert geen bestanden die 0 bytes lang zijn; in plaats daarvan verwijdert het dergelijke bestanden. Gebruik XCOPY om deze bestanden te kopiëren. Bron en/of Bestemming kunnen een geschikt apparaat zijn (zoals CON, COMx of LPTx waarbij x 1,2,3 exc. is) in plaats van een bestand.
Afhankelijk van de context behandelt Copy bestanden als binaire bestanden of ASCII-tekstbestanden. Standaard:
- Bij het kopiëren van bestanden van de ene naar de andere locatie (ASCII of niet), neemt COPY de binaire modus aan,
- Bij het aaneenschakelen van bestanden neemt COPY de ASCII-modus aan,
- Als de bron of bestemming een apparaat is (anders dan een schijf), gaat kopiëren in ASCII-modus.
In de binaire modus bepaalt COPY de startlocatie van het bestand uit de bestandstoewijzingstabel en kopieert vanaf dat punt het aantal bytes dat aan dat bestand is toegewezen.
In ASCII-modus worden gegevens gekopieerd totdat een End-Of-File-teken (ASCII-teken nr. 26; Ctrl-Z) wordt bereikt. Dit teken wordt NIET gekopieerd, maar COPY voegt een EOF-teken toe voordat het nieuwe bestand wordt gesloten.
Deze ingewikkelde procedure stelt COPY in staat om bestanden samen te voegen en te werken met niet-bestandsinvoer (zoals toetsenbord). In de zeldzame gevallen dat de standaardmodus ongepast is, kan deze worden overschreven door de schakeloptie /A of /B toe te voegen aan bron- en/of doelbestanden, zoals vereist.
Om "note.txt" te kopiëren in de huidige drive en directory naar de directory "mynotes":
COPY note.txt c:\mynotes
or
COPY note.txt c:\mynotes\
In het eerste geval, als de "mynotes" directory bestaat niet, "note.txt" wordt gekopieerd naar een bestand met de naam "mynotes" in de hoofdmap van station C. In het tweede geval wordt een "Invalid Directory" foutmelding wordt weergegeven. Om alle bestanden in de "mynotes" map naar een map met de naam "mynotes-back-up" op station D:
COPY c:\mynotes\*.* d:\mynotes backup\
Om een kopie te maken van "note.txt" in de huidige drive en directory en noem het "program note.txt"
KOPIE note.txt "programma note.txt"
DEBUG
DEBUG is een methode om naar delen van uw computer te kijken en montagecode te schrijven om bepaalde taken op uw computer uit te voeren. MS-DOS 2.x - 4.x gebruikte hiervoor DEBUG.COM en MS-DOS 5.x en meer gebruikten hiervoor DEBUG.EXE.
DEBUG.EXE is een van die kleine programma's die, in de handen van een ervaren gebruiker, een verbazingwekkend krachtig hulpmiddel is waarmee men de inhoud van het geheugen zowel op korte termijn (RAM) als op lange termijn (hard/ diskette/tape-media). Men kan ook assembleertaalcode compileren (en tot op zekere hoogte decompileren).
DEBUG is een byte-editor waarmee bestanden op byteniveau kunnen worden bekeken en gewijzigd. Het wordt over het algemeen aanbevolen omdat er geen "ongedaan maken" commando, dus maak een back-up voordat je ermee gaat spelen. Zorg ervoor dat u weet wat u doet wanneer u het hulpprogramma DEBUG gebruikt.
Dit is een krachtige programmeertool die kan worden gebruikt om op hardwareniveau toegang te krijgen tot uw computer. Als u niet voorzichtig bent, kunt u schade aanrichten zoals het wissen van uw harde schijf of het blokkeren van uw toetsenbord.
Syntax:
DEBUG [filename]
DEBUG [[drive:] [path] filename [testfile-parameters]]
[drive:][path]filename Specifies the file you want to test.
testfile-parameters Specificeert opdrachtregelinformatie die vereist is voor het bestand dat u wilt testen.
Debuggen starten
DEBUG kan op twee manieren worden gestart.
Methode één:
Bij de DOS-prompt die u invoert
DEBUG (return)
DEBUG zal reageren met het koppelteken (-). Wanneer de prompt verschijnt, wacht DEBUG op u om een van de vele eenletterige commando's in te voeren. Door DEBUG op deze manier te starten, kunt u aan de interne hardware van de computer werken en de inhoud van alle geheugenlocaties in RAM bekijken. U kunt ook in maar liefst 128 sectoren van een diskette of harde schijf laden en de inhoud bekijken, bewerken of verplaatsen naar een andere locatie.
DEBUG stelt een werkgebied in het geheugen van 65.535 (decimaal) één byte-locaties in, wat gelijk is aan FFFF-bytes in Hex. De eerste 256 (decimaal) of 100 hexadecimale bytes van dit gebied zijn gereserveerd voor het zogenaamde Program Segment Prefix (PSP) van een programma en mogen op geen enkele manier worden gewijzigd. Telkens wanneer we sectoren of gegevens in het geheugen laden met DEBUG, moet deze op een locatie worden geplaatst die begint bij offset 100.
Een voorbeeld van een debug-opdracht wordt getoond op de volgende regel.
DEBUG
L 0100 0 0 80 (return)
In deze opdracht vertellen we debug om in het geheugen te laden vanaf offset 100, 80 (Hex) sectoren van de A-drive beginnend met sector 0. 80 Hex-sectoren is gelijk aan 128 decimale sectoren, dus als elke sector op de schijf wordt opgeslagen 512 bytes, dan is het totale aantal bytes dat in het geheugen is geladen (512 X 128) of 65.540 bytes (maximaal).
Methode twee:
Bij de DOS-prompt typ je
DEBUG \pad\bestandsnaam (retour)
DEBUG laadt zichzelf vervolgens in het geheugen samen met het bestand dat is opgegeven in het pad en bestandsnaamveld van de opdrachtregel en plaatst de eerste byte van het bestand op offset 100 van het werkgebied.
Door DEBUG op deze manier te starten, kunnen we een COM-programma of een ASCII-tekstbestand bekijken, bewerken of verplaatsen. Dit is een erg handige manier om een COM-programma te DEBUGGEN of te repareren.
MS-DOS laat slechts twee soorten programma's draaien onder zijn controle en ze moeten eindigen met de extensies EXE of COM. Het verschil tussen deze twee programmatypes zit in de manier waarop DOS de onderhoudsgedeelten van het programma afhandelt.
Dit onderhoudsgebied, vaak het Program Segment Prefix (PSP) genoemd, is een geheugenblok van 256 bytes dat door het programma moet worden gereserveerd en dat DOS nodig heeft om de controle terug te geven aan het besturingssysteem wanneer het programma wordt beëindigd.
Zonder op veel details in te gaan, zullen we wijzen op het belangrijkste verschil tussen deze twee soorten programma's.
COM-extensie
COM-programma's zijn zeer kleine en compacte programma's die niet groter kunnen zijn dan 65K bytes. De PSP van een COM-programma bevindt zich op de eerste 100 Hex (256 december) locaties van het programma. De eerste instructie van het COM-programma moet beginnen bij offset 100 in het geheugen.
DOS maakt de PSP voor het COM-programma, wat betekent dat we ons hier geen zorgen over hoeven te maken als we een programma samenstellen. Alle gegevens, code en het stapelgebied bevinden zich in hetzelfde geheugensegment (1 segment is 64K).
EXE-extensie
De EXE-programma's kunnen elke grootte hebben van 200 bytes tot 640k bytes. De PSP moet door de programmeur worden ingesteld wanneer het programma wordt samengesteld. De programmeur bepaalt waar de eerste instructie in het programma staat. Het EXE-programma gebruikt afzonderlijke segmenten voor het gegevens-, code- en stapelgebied in het geheugen.
Aan de vergelijking van de eigenschappen van EXE- en COM-bestanden kunt u zien dat het veel moeilijker is om een EXE-programma samen te stellen dan dat het een COM-programma is. Het hulpprogramma voor foutopsporing is ontworpen om alleen te werken met een COM-programma door het PSP-gebied in te stellen telkens wanneer we foutopsporing openen.
Eenmaal in DEBUG kunnen we beginnen met het samenstellen van een programma op offset 100 en hoeven we ons geen zorgen te maken over PSP of waar de gegevens, code en stapel zich bevinden. Het is mogelijk om met DEBUG naar een EXE-programma te kijken als we het programma hernoemen met een andere extensie voordat we het in het geheugen laden.
Nadat DEBUG is gestart, typt u ? om een lijst met debugging-opdrachten weer te geven. Om uit DEBUG te komen, moet je "Q" gebruiken. en voer in. Om de DEBUG-routine uit te voeren, moet u "G" en voer in.
Laten we een voorbeeld bekijken:
DEBUG <return>
D40:00 <return>
Informatie over uw computerpoorten wordt weergegeven als een poort afwezig is of niet reageert, de status van die poort wordt weergegeven als 00.
Now enter Q to return.
Q <return>
Zodra DEBUG is aangeroepen, wordt de ietwat cryptische "DEBUG-prompt", een koppelteken (-), weergegeven. Bij de prompt worden de volgende "DEBUG-commando's" zijn toegestaan:
Command |
Parameters |
Action |
? |
|
This list of DEBUG commands. |
A |
[address] |
Assemble |
C |
range address |
Compare |
D |
[start address [end address | L range]] |
Displays a segment of memory. By default start address is offset 100 of the first free segment of memory, or offset 100 of the segment containing a file loaded by DEBUG. The default end address is 017F ( a range of 128 bytes). |
E |
address [list] |
Enter |
F |
range list |
Fill |
G |
[=address] [addresses] |
Go |
H |
value1 value2 |
Hex |
I |
Port |
Input |
L |
- |
Loads a previously "named" (by N command) file into memory where it can be viewed /edited. |
L |
Number |
Used with commands accepting a "range" argument to denote a number of bytes. Typically used in arguments as: start address L number. If number should take end address past the end of the segment, then number is truncated so the end address is the last byte of the segment. |
M |
range address |
Move |
N |
[path] filename [arglist] |
"Names" a file for DEBUG. A file must be "named" before it can be loaded for viewing/editing. |
O |
port byte |
Output |
P |
[=address] [number] |
Proceed |
Q |
|
Exit DEBUG. |
R |
[register] |
Register |
S |
range list |
Search |
T |
[=address] [value] |
Trace |
U |
[range] |
Unassembled |
W |
[address] [drive] [first sector] [number] |
Write |
XA |
[#pages] |
Allocate expanded memory |
XD |
[handle] |
de-allocate expanded memory |
XM |
[Lpage] [Ppage] [handle] |
Map expanded memory pages |
XS |
|
Display expanded memory status |
DEL (or ERASE)
Verwijdert benoemde bestanden. DEL en ERASE zijn synoniem.
Syntaxis:
Om een bestand te verwijderen:
DEL [pad] bestandsnaam [/P]
Bestandsnaam Naam van te verwijderen bestand.
/P Forceert bevestiging voordat elk bestand wordt verwijderd.
Om alle bestanden in een map met bevestiging te verwijderen:
DEL pad of
DEL pad \*.*
Om alle bestanden in een map te verwijderen zonder bevestiging:
DEL pad \?*.*
DEL accepteert slechts één parameter die aangeeft wat er moet worden verwijderd. Deze parameter kan echter met jokertekens worden geschreven, zodat meerdere bestanden worden verwijderd. Als er meer dan één parameter wordt gedetecteerd, wordt de opdracht afgebroken en wordt er een foutmelding weergegeven.
DEL wordt geïnterpreteerd met een lange bestandsnaam met spaties als meerdere parameters, wat een fout veroorzaakt. De lange bestandsnaam omsluiten met spaties tussen aanhalingstekens lost het probleem op. Laten we een voorbeeld zien:
D:\>del note 2.txt
Too many parameters - 2.txt
D:\>del "note 2.txt"
D:\>_
DEL verwijdert geen bestanden die alleen-lezen, verborgen en/of systeemkenmerken hebben. Om dergelijke bestanden te verwijderen, kan men DELTREE gebruiken of de nodige attributen wijzigen met het ATTRIB-commando.
DELTREE
Deletes Files and Directories, and all the Subdirectories and files in it.
Syntax:
To delete a directory and all the subdirectories and files contained therein:
DELTREE [/Y] directory
directory The directory to be deleted.
/Y Suppresses prompts for confirmation before
deletion.
To delete all the files and subdirectories but leave the directory itself:
DELTREE [/Y] directory\*.*
To delete a file:
DELTREE [/Y] filename
The DELTREE command deletes all files contained in a directory or subdirectory, regardless of whether files are marked as hidden, system, or read-only.
The DELTREE command supports wildcards, but they should be used with some caution. If you specify a wildcard that matches both directory names and filenames, both the directories and files will be deleted.
Before specifying wildcards with the DELTREE command, use the DIR /A command to view the files and directories you will delete. It is also safest to specify the full path to avoid any surprises from ambiguous specification. Let us see some examples.
To delete the NOTES directory on drive C, including all files and subdirectories of the NOTES directory:
DELTREE c:\notes
To delete all the files and subdirectories in the NOTES directory leaving an empty directory NOTES for future use, and avoiding the prompt for confirmation:
DELTREE /Y c:\notes\*.*
To delete the read-only file recover.doc in the c:\data directory without resetting the attributes:
DELTREE /Y c:\data\recover.doc
DOSKEY
DOSKEY is a TSR designed to assist working from the command line by making it easier to edit the command line, by remembering previous commands, and being able to record macros.
Syntax:
To load DOSKEY:
DOSKEY [/Switches]
Switches |
what it does |
/B:xxx |
Sets the size of the buffer for macros and commands. The minimum value of xxx is 256 and the default is 512 (bytes). If DOSKEY is already running, it must be reloaded (with /R) when changing the buffer size. |
/E:On|Off |
Enables|Disables the display of commands when a macro plays. E(Echo) is On by default. |
/F:filename |
Retrieves filename - a text file containing a list of macros in the form Macroname=Text |
/H |
Displays all commands stored in memory. (This list will not be redirected to a file). |
/I|O |
Specifies whether text is entered in Insert or Overstrike mode by default. In either case the alternative mode can be selected by using <Insert> but the default is reset as soon as <Enter> is used. The default mode is Overstrike. |
/K:xx |
Sets the size of the keyboard type-ahead buffer. The default is 15 (characters). If DOSKEY is already running, it must be reloaded (with /R) when changing the buffer size. |
/L |
Sets the maximum size of the line edit buffer. The default is 128 (characters). |
/M |
Displays a list of all DOSKEY macros currently in the buffer. This list can be redirected to a text file using standard Dos redirection (>) |
/R |
Installs a new instance of DOSKEY. If DOSKEY is already running, the buffer is cleared of both macros and the Command Line history. Note that installing a new instance of DOSKEY does not remove the previous instance. Thus each use of /R takes another 5K of conventional/upper memory. |
Macroname |
The name of the macro. This is a string of one or more characters possibly modified by the Ctrl and/or Alt keys. |
Text |
The text string to be assigned to Macroname. This will typically be one or more DOS commands along with appropriate parameters and/or switches. |
To create a DOSKEY macro:
DOSKEY Macroname=Text
To run a macro:
Macroname
Switches |
what it does |
/B:xxx |
Sets the size of the buffer for macros and commands. The minimum value of xxx is 256 and the default is 512 (bytes). If DOSKEY is already running, it must be reloaded (with /R) when changing the buffer size. |
/E:On|Off |
Enables|Disables the display of commands when a macro plays. E(Echo) is On by default. |
/F:filename |
Retrieves filename - a text file containing a list of macros in the form Macroname=Text |
/H |
Displays all commands stored in memory. (This list will not be redirected to a file). |
/I|O |
Specifies whether text is entered in Insert or Overstrike mode by default. In either case the alternative mode can be selected by using <Insert> but the default is reset as soon as <Enter> is used. The default mode is Overstrike. |
/K:xx |
Sets the size of the keyboard type-ahead buffer. The default is 15 (characters). If DOSKEY is already running, it must be reloaded (with /R) when changing the buffer size. |
/L |
Sets the maximum size of the line edit buffer. The default is 128 (characters). |
/M |
Displays a list of all DOSKEY macros currently in the buffer. This list can be redirected to a text file using standard Dos redirection (>) |
/R |
Installs a new instance of DOSKEY. If DOSKEY is already running, the buffer is cleared of both macros and the Command Line history. Note that installing a new instance of DOSKEY does not remove the previous instance. Thus each use of /R takes another 5K of conventional/upper memory. |
Macroname |
The name of the macro. This is a string of one or more characters possibly modified by the Ctrl and/or Alt keys. |
Text |
The text string to be assigned to Macroname. This will typically be one or more DOS commands along with appropriate parameters and/or switches. |
To create a DOSKEY macro:
DOSKEY Macroname=Text
To run a macro:
Macroname
DOSKEY Commands |
What it does |
Left/Right cursor |
Moves the cursor back/forward one character. |
Ctrl + Left/Right cursor |
Moves the cursor back/forward one word. |
Home/End |
Moves the cursor to beginning/end of line. |
Up/Down cursor |
To scroll up (and back) through the list of stored commands. Each press of the "up" key recalls the previous command and displays it on the command line. |
Page Up/Down |
Recalls the oldest/most recent command in the buffer |
F1 |
Copies the next character from the Template to the Command Line |
F2 + key |
Copies text from the Template up to (but not including) key. |
F3 |
Copies the Template from the present character position to the Command Line. |
F4 + key |
Deletes the characters from the present character position up to (but not including) key. |
F5 |
Copies the current command to the Template and clears the Command Line. |
F6 |
Places an end-of-file character (^Z) at the current position of the Command Line. |
F7 |
Displays a numbered list of the command history. |
Alt-F7 |
Deletes all commands stored in the buffer. |
Chars + F8 |
Entering one or more characters Chars followed by F8 will display the most recent command beginning with Chars. Pressing F8 again will display the next most recent command beginning with Chars, and so on. |
F9 + Command# |
Displays the designated command on the command line. |
Alt-F10 |
Deletes all macro definitions. |
To delete a macro:
DOSKEY Macroname=
DOSKEY Special Characters
The following special characters can be used in macros to control command operations:
Characters |
What is does |
$G |
Redirects output – equivalent to the redirection symbol > |
$G$G |
Appends output to the end of a file - equivalent to the append symbol >> |
$L |
Redirects input - equivalent to the symbol < |
$B |
Sends macro output to a command - equivalent to the pipe symbol | |
$T |
Separates commands when creating macros or typing commands on the DOSKEY command line |
$$ |
Use for the $ sign |
$1 to $9 |
Represents any command-line parameters that can be specified when the macro is run. Comparable with the %1 to %9 characters in batch programs |
$* |
Represents command-line information that can be specified when macroname is written. $* is similar to the replaceable parameters $n except that everything typed on the command line after macroname is substituted for the $* in the macro. |
DIR
Displays the list of Files and Subdirectories in a Directory.
Syntax:
DIR [drive:] [path] [filename] [/Switches]
Switch |
What Is does |
none |
By default, DIR displays:
- a header comprising the disk's volume label and serial number;
- a list of all files and subdirectories in the current directory in the order they are listed in the FAT except those marked 'hidden' and/or 'system'. Along with each file/directory is its size, date/time of last modification, and long file name;
- a footer comprising the total number of files listed, their cumulative size, and the free space (in bytes) remaining on the disk.
|
/A [attributes] |
Displays files with and without specified attributes. Multiple attributes can be specified with no spaces between them.
attributes (Using the "-" as a prefix specifies "not")
D Directories
R Read-only files
H Hidden files
A Files modified since last back-up
S System files |
/O
[sortorder] |
List files in sorted order.
If order of sorting is not specified, directories are listed alphabetically followed by files, also listed alphabetically. Any combination of sorting order keys can be specified and files will be sorted in the order of the keys.
sortorder (Using "-" as a prefix reverses the order)
N By name (alphabetic)
S By size (smallest first)
E By extension (alphabetic)
D By date & time (earliest first)
G Group directories first
A By Last Access Date (earliest first) |
/S |
Displays Files in the specified Directory and all its Subdirectories |
/W |
Wide list format. File and Directory names are listed in 5 columns |
/B |
Bare format. Files and Directories are listed in a single column without header, summary, or any details. |
/L |
Output is in lowercase. |
/P |
Pauses with each screen, full of information. Press any key to see the next screen. |
/V |
Forces to Verbose mode. This displays attributes, date last accessed, and disk space allocated for each file, in addition to the standard information. |
/Z |
Long file names are not displayed in the file listing. |
/4 |
Displays the date as four digits rather than two. |
The DIR command only accepts one path as a parameter. Long file and Directory names that include a space must be enclosed in inverted commas. You can also use wildcards such as * and ? to display a listing of a subset of files and subdirectories.
DIR can be used with the standard period (.) shortcuts to show higher level directories. If more periods are used than are required to show the root directory, the directories and files.
When using redirection to send the output of DIR command to a file or another command, it is often useful to use /A:-D to list only files, and /B to avoid extraneous information such as files sizes, headers and summary information. Also when the output of a DIR command is redirected via a pipe, a temporary file is created which is automatically deleted once the operation is completed.
By default, this temporary file is located in the directory specified by the "TEMP" environmental variable but, if this is not specified or cannot be found, it will be created in the current directory of the current drive. If the DIR command also refers to the current directory, any such temporary files will be picked up and included in the listing.
DISKCOPY
DISKCOPY is used to duplicate floppy disks. Any data on the destination disk is overwritten.
Syntax:
DISKCOPY drive1: [drive2:] [/1] [/V] [/M]
drive1 Drive containing disk to be copied from and to, if the computer has only one floppy drive.
drive2 Drive containing disk to be copied to if different from
drive1.
/1 Copies only the first side of the disk.
/V Verifies that the information is copied correctly.
/M Force multi-pass copy using memory only.
DISKCOPY is designed to duplicate standard floppy disks by making a byte-by-byte copy of the source disk to the destination disk. DISKCOPY do not work with hard drives, CDs, network drives, or Zip, Jazz, etc. type drives. Also it should be kept in mind Source and destination disks must be of the same type, size, and capacity. If they are not, an error message is displayed:
EDIT
It is a simple full-screen DOSased ASCII text editor.
Syntax
EDIT [/B] [/H] [/R] [/S] [/nnn] [filename(s)]
/B Forces monochrome mode.
/H Displays the maximum number of lines possible for your
hardware.
/R Load file(s) in read-only mode.
/S Forces the use of short filenames.
nnn Load binary file(s), wrapping lines to nnn characters wide.
filename(s) Specifies initial files(s) to load. Wildcards can also be used.
To see the list of shortcut keys you can see the "Help" menu of editor.
EXIT
In case of DOS of windows environment, EXIT command is used to quit the DOS shell else if talking generally, Quits the MS-DOS command interpreter (COMMAND.COM) and returns to the program that started the command interpreter, if one exists.
Syntax
EXIT
FC
Compares two files or sets of files and displays the differences between them.
Syntax:
FC [/Switches] file1 file2
Switch |
What It does |
/B |
Performs a binary comparison.
The two files are compared byte by byte and there is no attempt to resynchronize the files after finding a mismatch. This is the default mode for comparing files when file1 has an extension of .EXE, .COM, .SYS, .OBJ, .LIB and .BIN or similar to it. |
/L |
Compares files as ASCII.
The two files are compared line by line and FC attempts to resynchronize the files after finding a mismatch. This is the default mode for comparing files when file1 does not have an extension of .EXE, .COM, .SYS, .OBJ, .LIB and .BIN or similar to it. |
/LBn |
Sets the number of lines for the internal line buffer.
If the files being compared have more than this number of consecutive differing lines, FC cancels the comparison. Default value of n is 100 |
/nn |
The number of consecutive lines that must match before the files are declared resynchronized. If the number of matching lines in the files is less than this number, the matching lines are displayed as differences. Default value of nn: 2. |
/N |
Displays the line numbers on an ASCII comparison. |
/A |
Abbreviates the output of an ASCII comparison. Only the first and last line for each set of differences is displayed as opposed to the default of every different line. |
/C |
Disregards the case of letters. |
/T |
Does not expand tabs to spaces.
By default, tabs are treated as spaces with 1 tab = 8 spaces. |
/W |
Compresses tabs and multiple spaces to a single space for the comparison. |
If file1 includes a wildcard, all applicable files are compared to file2. If file2 also includes a wildcard, it is compared with the corresponding file1. In most cases, binary files are compared to see if they are the same or not. To simply see if two binary files are identical, it is often quickest to compare them as ASCII files using the /LB1 switch to cut the output to a minimum.
Let us see an example of the significant differences in processing times. By trying the following examples you will be able to understand how to use FC in Time saving and batter way:
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 is a menu driven utility used to configure and/or display information about the partitions on a hard disk. You Should know What you are doing in FDISK environment and you should be sure for doing that otherwise it may delete or change your partitions’ information and you may suffer the loss of partitions(s) i.e. data.
Before a hard disk can be recognized by DOS, a Master Boot Record (MBR) must be established. FDISK is the MS-DOS utility used to create an MBR by defining the size and nature of a hard drive's partitions. The MBR defines areas of the disk to be:
- A Primary Partition and/or
- An Extended Partition
An Extended Partition has to be designated as containing one or more Logical DOS Drives. If you remove partitions, you will destroy everything on them, or, at the least, make it very difficult to recover any data. We’ll learn more about Fdisk in the Recovery programming section of this book.
FIND
The FIND command is used to search for a text string in a file or files. After searching the specified files, FIND displays any lines of text that contain the string.
Syntax:
FIND [/V] [/C] [/N] [/I] "string" "filename1" "filename2" "filename ..."
Switch |
What It Does |
/V |
Displays all lines NOT containing the specified string. |
/C |
Displays only a count of lines containing the string. If used with /V, FIND displays a count of the lines that do not contain the specified string. |
/N |
Displays line numbers with the lines. If /C and /N are used together, /N is ignored. |
/I |
Ignores the case of characters in string. By default FIND is case sensitive and searches for an exact character match. |
string |
The text string to be found. String must be in inverted commas. |
filename |
The file(s) to be searched. If filename does not contain spaces, it does not need to be enclosed in inverted commas. |
If filename is not specified, FIND searches the text input from the standard source which is usually the keyboard, a pipe, or a redirected file. Wildcards are not accepted in filename. Also as inverted commas are used to delimit string, they cannot be used within string as part of the search pattern.
To include inverted commas within string, it is necessary to use the "special character" of double inverted commas ("") which FIND interprets as inverted commas in the search string. Let us see some examples:
To display all lines from the file "NOTES.TXT" that contains the string "homework":
FIND "homework" notes.txt
If the string contains inverted commas, these must be doubled:
FIND "The result of ""B.E. Final year"" has not been displayed." Result.doc
FORMAT
Formats a disk for use with MS-DOS. Always remember that the data stored in the disk will be erased after the format. Be careful and be sure before using the format command and always remember to see which drive letter you are entering in FORMAT command.
Syntax:
FORMAT drive: [/Switches]
Switch |
What It does |
/V[:label] |
Specifies a volume label. If the /V switch is omitted, or label is not specified, a prompt for a volume label is displayed after formatting is completed. If no volume label is required, the prompt can be avoided by specifying: /V:""
If a label is specified and more than one disk is formatted in a session, all of the disks will be given the same volume label. |
/Q |
Forces the Quick format of a previously formatted disk. The file allocation table (FAT) and root directory of the disk is deleted but it is not scanned for bad areas. |
/S |
Copies system files to the formatted disk to make it a boot disk. |
/B |
Allocates space on the formatted disk for system files. |
/F:size |
Formats a disk to a capacity other than that for which the drive was designed. Size can be: 360, 720, 1.2, 1.44, and 2.88. |
/T:tracks |
Specifies the number of tracks per disk side. |
/N:sectors |
Specifies the number of sectors per track. |
/1 |
Formats a single side of a floppy disk. |
/4 |
Formats a 5.25-inch 360K floppy disk in a high-density drive. |
/8 |
Formats eight sectors per track |
/C |
Tests clusters that are currently marked "bad." By default, if a disk contains clusters that have been marked as "bad", FORMAT does not retest the clusters; it simply leaves them marked "bad". |
By default, and unless the /Q switch is used; each sector on the disk is checked during the formatting process to ensure that the sector can properly store data.
If a bad sector is located, it is marked and is not used. When formatting is complete, a message is displayed showing the total disk space, any space marked as defective, the space used and the space available for files. FORMAT cannot be used on a virtual drive created using the SUBST command.
A fast way to reformat a floppy is:
ren /? | format /q/v:"" > nul
The ren /? part feeds, along with a load of redundant material, an "enter", followed by a "n, enter" in response to FORMAT's prompts. The >nul prevents the display of the somewhat messy mixed up output of the two commands.
LABEL
The LABEL command is used to create, change, or delete the volume label of a disk. The volume label of a disk is displayed as part of the directory listing along with the volume serial number, if exists.
Syntax:
LABEL [drive:] [label]
Drive: The location of the disk to be named.
Label The new volume label.
None Displays current disk label, if they exist. Prompts to enter a new label or delete the existing one
MD (or MKDIR)
Creates a directory. MD and MKDIR are synonymous do the same tasks.
Syntax:
MD [path] directoryname
MORE
The MORE command reads standard input from a pipe or redirected file and displays one screen of information at a time. This command is commonly used to view long files, directory output, etc.
Syntax:
MORE [path] filename
MORE < [path] filename
command | MORE [path] [filename]
command a command whose output is to be displayed.
Filename file(s) to display one screen at a time
MORE filename and MORE < filename are synonymous and equivalent to TYPE filename | MORE. In all these cases filename is displayed a screenful at a time. Pressing "Enter" displays the next screen. The display can be terminated at any time by pressing Ctrl-C. MORE automatically wraps text to fit the screen.
Let us consider an example of a big text file named BIGFILE.TXT. Now the following three commands will do the same task:
TYPE bigfile.txt | MORE
MORE bigfile.txt
MORE < bigfile.txt
MOVE
Moves files and directories from one location to another on the same or different drives.
Syntax:
MOVE [/Y | /-Y] [path] filename destination
/Y Suppresses prompting to confirm creation of a directory or overwriting of the destination. This is the default when MOVE is used in a batch file.
/-Y Forces a prompt to confirm creation of a directory or overwriting of the destination. This is the default when MOVE is used from the command line.
If more than one file is listed to be moved, destination path must be a directory and the files will retain their original names.
RD (or RMDIR)
Removes (deletes) an empty directory. RD and RMDIR are synonymous and do the same tasks.
Syntax:
RD [path] directoryname
If there is a backslash ( \ ) before the first directory name in path, that directory is considered a subdirectory of the root directory on the current drive. If there is no backslash before the first directory name in path, the directory is considered a subdirectory of the current directory.
Also RD will only delete an empty directory. If RD is used on a directory containing files and/or subdirectories, Error message is displayed by the computer.
SCANDISK
Runs the SCANDISK disk-repair program.
Syntax
To check and repair the current drive:
SCANDISK
You should not scan the disk with CHKDSK or SCANDISK or any other disk scanning program if your disk is crashed or there is any logical error in your boot sectors like MBR, DBR, FAT or root directories are corrupted. It may make you data information distorted and can make it difficult to recover. Not only this you may not recover data completely |
Generally the DOS version of Scandisk does not run while Windows is running. Rather than signaling an error, it automatically transfers control to the Windows version of Scandisk
TYPE
The TYPE command is used to display the contents of an ASCII text file on screen.
Syntax:
TYPE filename
To display text files one screen at a time, pipe the output from a TYPE command to MORE. Let us see some examples:
To display the contents of ROMI.TXT:
TYPE romi.txt
If the file is too long to fit on a single screen:
TYPE romi.txt | MORE
XCOPY
This command is one of the most important commands when you want to make the backup of your important data or even you want to make the image of entire drive to Copy files and directory trees.
XCOPY is similar to the COPY command except that it has many more switches that allow considerable control over exactly what is copied when using wildcards.
Syntax:
XCOPY source [destination] [/Switches]
source The file(s) and Directories to be copied. Wildcards (* or ?) may be used.
destination The path and/or name(s) of new files. If destination is omitted, the files are copied to the current directory. If destination refers to a directory that does not exist, the directory is created. By default, XCOPY will confine its operation to files in the source directory.
Switch |
What it does |
/E |
Copies the complete subdirectory structure of source and all files therein. |
/S |
Copies the complete subdirectory structure of source and all files therein but does not copy empty subdirectories. |
/T |
Copies the subdirectory structure of source but does not copy any files and does not copy empty subdirectories. To include empty subdirectories, use with the /E switch. |
/A |
Only copies files with the archive attribute set. |
/M |
Only copies files with the archive attribute set, turning off the archive attribute of the source files. |
/H |
Includes files with hidden and system attributes set. |
/K |
Copies files without resetting the read-only attribute, if set. |
/R |
Overwrites read-only files. |
/U |
Only copies files in source that already exist in destination. Can be used with /D to update files with more recent versions. |
/D:date |
Only copies files with a 'last modified date' the same as, or later than, date. If date is not specified, all files are copied except for same-named files in the destination directory that have a more recent 'last modified date' than the one in source. |
/I |
Forces destination to be treated as a directory. The file/directory prompt is suppressed. |
/Y |
Overwrites existing files without prompting. |
/-Y |
Prompts before overwriting existing files. |
/W |
Displays a prompt before starting to copy files. |
/P |
Prompts for confirmation before creating each destination file. |
/F |
Displays full source and destination file names while copying. |
/Q |
Does not display file names or any other messages while copying. |
/C |
Continues copying even if errors occur. |
/L |
Displays files to be copied but does not actually copy them. |
/N |
Copy using the generated short names. This is necessary when copying from a VFAT volume to a FAT volume. |
/V |
Verifies that new files are readable. |
By default XCOPY will not copy files which have system or hidden attributes set and also copies of read-only files do not have the read-only attribute set, and all copied files have their archive attribute set. By default, XCOPY prompts before overwriting files in destination with files in source of the same name.
XCOPY also prompts for instructions if there is ambiguity whether destination is a directory or file. An ambiguity is seen when destination does not refer to an existing directory or end in a “\ ". For example a destination of name.ext could be either a file or a directory. Let us learn it better by the following examples.
To copy all files and subdirectories from the notes directory to the disk in drive a:
xcopy c:\notes a: /s
or
xcopy c:\notes\*.* a: /s
To copy all files and subdirectories from the notes directory created or modified since 9 dec 2002 to the disk in drive a:
xcopy c:\notes a: /s /d:9/12/02
Making the “Drive Image”
If you want to make the backup of your entire drive to another or you want to make image of your data of drive “including Operating System and other installed software” to another hard disk, just try this:
C:\> Xcopy * D: \I\E\C\H
Here D: is supposed to be the Active partition of another hard disk. This will copy the whole data of the source drive (Including installed Operating System, Software, Document etc.) as image to the Destination Drive.
And after this if you boot your computer with the destination drive, it will work same as the source drive was working and it will show all the data that you were having in the source drive.
Specification Shortcuts, Wildcards and Redirection
Shortcuts
A number of DOS commands recognize certain shortcuts when navigating between directories. The best known of these are:
Shortcut |
Why to use it |
. |
to refer to the current directory |
.. |
to refer to the parent directory |
\ |
to refer to the root directory of the current drive. |
drive: |
to refer to the current directory on drive |
Let us try to understand it with the help of examples. If the current directory on the c: drive is c:\windows\java\notes, then dir c: at the a:\> prompt will list the files in c:\windows\java\notes
- If the current drive and directory is c:\data\docs\letters, then:
- If the current drive and directory is c:\, then:
Wildcards
Many DOS commands like, ATTRIB, COPY, DEL, DELTREE, etc., accept the use of the "wildcards" (* and ?). Generally terms, * refers to multiple characters and ? refers to a single character in a file or directory name.
This is the reason we can not use these characters in the name of any file. These Special characters are / \ : * ? < > “ | which should not be tried to insert in a file name. Following table shows the use of wildcards:
Wildcard |
What it does |
*.* |
All files with all extensions. |
*data*.* |
All files with "data" anywhere in its name. |
*array.* |
All files with names ending with "array" |
note?.cpp |
All files named "note" plus one character and with .CPP extensions. This file may be note1.cpp, but not note.cpp. |
?t*.* |
All files with an "t" as second letter in their names |
It should be noted that not all commands handle wildcards in exactly the same way. For example DIR * and DIR *.* are considered synonymous but DEL * would delete only files without an extension.
A space enclosed by inverted commas (" ") is accepted as a valid file specification by EDIT and DEL yet in rather different ways.
EDIT will open a file using the name of the current directory. Thus if the current directory is D:\windows\java\notes, EDIT " " will create a file in that directory called "notes".
DEL recognizes " " as *.* and will prompt for confirmation before deleting all files in the directory. As with EDIT, the number of spaces between the inverted commas does not seem significant but if there are no spaces an error message is displayed saying that a required parameter missing.
Unlike EDIT, a path can be included and, if it is, no spaces between inverted commas are required. i.e. to delete all files in the current directory:
DEL ./"" works, but DEL "" gives an error message.
COPY also sees " " as *.* and, like DEL, accepts a path with it. Unlike DEL, there must always be a space between the inverted commas, even when a path is included
Redirection
A number of DOS commands send output to the screen and/or require input from the user. Redirection is a mechanism whereby the output of a command can be fed either to some other device for example, a printer or file, or to another program or command.
There are four redirection functions:
> |
Redirect output |
>> |
Append |
< |
Redirect input |
| |
Pipe |
>
Redirects a command's output from the "standard output device" (usually the monitor) to another device (e.g. printer) or a file.
Syntax:
To redirect output to a device:
Command > Device
To redirect output to a file:
Command > Filename
Acceptable Device names are, CON (Monitor), PRN (LPT1 - assumed to be the printer), LPT1 - 3 (Parallel Ports - usually connected to a printer), COM 1 - 4 (Serial Ports) and NUL (an electronic void).
If anything other than a recognized device is specified, it is assumed to be the name of a file. If a file already exists with the specified Filename, it is overwritten without any Warnings. Let us see some Examples to better understand it.
Probably the most common uses of this redirection function is to send directory listings to the printer or to save them as a file. To print out a sorted directory listing of all files in the Windows directory:
DIR c:\windows /o/a > PRN
To create a file containing the directory listing of the same directory:
DIR c:\windows /o/a > d:\windows.txt
>>
Appends the output from a command to the specified file.
Syntax:
Command >> Filename
If Filename does not exist, it is created. If Filename does exist, the output from the command is added to it, unlike the > function where the original contents are overwritten. Let us better understand it with example.
To add the directory listing of the files in the c:\windows\system directory to that created before:
DIR c:\windows\system /o/a >> d:\windows.txt
<
Directs input to a command from a source other than the default. The default source usually being the keyboard.
Syntax:
Command < Datasource
It is used generally in batch programming. Let us understand it with the example. The following procedure of DEBUG command is used to make the backup of MBR where MBR.BIN is the name of backup file created after this execution.
debug mbr.bin
A
MOV DX, 6000
MOV ES, DX
XOR BX, BX
MOV DX, 0080
MOV CX, 0001
MOV AX, 0201
INT 13
INT 20
<Enter>(type nothing)
G
R CX
200
W 6000:0000
Q
To this with help of batch file we make two batch files, one containing the command instruction to start DEBUG command and other to store other instructions which will be fed to the DEBUG command as input. This File will be the datasource for the first file. Let us see how:
C:\ mbr.bat
Now let us see what this MBR.BAT has in it.
MBR.BAT |
DEBUG mbr.bin < ttsource.bat |
And obviously the second file named TTSOURCE.BAT will work as datasource for this and will be having following instructions in it:
TTSOURCE.BAT |
A |
MOV DX, 6000 |
MOV ES, DX |
XOR BX, BX |
MOV DX, 0080 |
MOV CX, 0001 |
MOV AX, 0201 |
INT 13 |
INT 20 |
<enter> (Type Nothing) |
G |
R CX |
200 |
W 6000:0000 |
Q |
|
The pipe redirects the output of a program or command to a second program or command.
Syntax:
Command1 | Command2
Let us see an example of typing a long text file:
type file.txt |more
Page Modified on: 11/01/2022