DOS-COMMANDO's
Wat als een Windows-systeembestand
beschadigd is, door per ongeluk schrappen, één of ander dom
installatieprogramma, of door een virus? Slechts een redding,
repareren vanuit Dos! Met of zonder boot-disk. Hier volgt een
algemene uitleg van Dos-commando's, eigenlijk voor beginners,
maar zelfs personen die thuis zijn in de materie zullen hier en
daar iets nieuw vinden... Probeer niet klakkeloos alle commando's
te typen, als je niet zeker weet wat je doet - sommige commando's
kunnen bestanden vernietigen die je nodig hebt, of volledige
harde schijven uitvegen.
Algemene regel!
1. Alles wat je doet gebeurt *enkel* in de
directory (folder) waar je in staat. Uitzondering
voor deltree dat ook in de subdirectories bestanden schrapt, en
de externe commandos scandisk, defrag, format en fdisk -
dat zijn gehele schijfbewerkingen. Vergeet niet dat al deze
commandos ook werken op Windows 95 - Win NT...
2. Om een uitvoerbaar bestand op te starten
vanuit dos (uitvoerbaar= alles (*) met extentie ".bat"
; ".com" ; ".exe"), moet je gewoon de naam
intypen die je kan lezen voor de extentie. Om het bestand
"setup.exe" te laten uitvoeren vanop diskette a:, kan
je gewoon typen "a:\setup [Enter]" Of eerst
a: (Enter) en dan setup (Enter)
Basiskennis:
- a: - ga naar station a (diskette).
- c: - ga naar station c: (harde schijf).
- cd\ - ga naar de root-direcory (Change
Directory).
- dir - toon bestanden en subdirectory's
(uiteraard in de directory waar je nu in staat).
- cd windows - ga naar de directory met naam
windows.
- dir /p - idem maar scherm per scherm.
- dir *.dll - toon alleen de bestanden met extentie
".dll".
- dir *.dll
|more - idem maar
scherm per scherm (| = Alt Gr + &).
- cd.. - ga één stap terug in de structuur (hier
dus van c:\windows naar c:\ ).
- md test - maak een directory aan, genaamd
"test". Make Directory (naam).
- cd test - ga in deze directory staan. (u werkt nu
enkel hier).
- copy c:\*.* - kopiëer alles van c:\(root) naar hier
(hier is nu "c:\test", als je de
commando's in de volgorde van deze tekst typt).
- copy
a:\setup.exe c:\test -
kopiëer het bestand setup.exe van diskette
naar harde schijf - in c:\test.
- ren een.bat
twee.bat - hernoem het
bestand een.bat naar twee.bat
(indien een.bat bestaat).
- del *.bat - schrap alle bestanden met extentie
".bat" (enkel in c:\test doen! niet in
c:\!)
- del config.* - schrap alle bestanden met naam
config.(eender welke ext.) (enkel in c:\test
doen!)
- del msdos.sys - schrap bestand msdos.sys (! enkel in
c:\test ! niet doen in c:\ )
- del *.* - schrap alles (alleen doen in deze
c:\test, niet doen in c:\ !)
- cd.. - zie hoger...ga terug naar c:\ (root)
- rd test - schrap de directory "test" (zal
niet gaan - zie gevorderd - er zijn nog verborgen
bestanden die je niet kon schrappen) (Remove Directory)
- dir /? - toon de help en schakelopties voor het
commando "dir"
- prompt /? - idem voor het prompt-commando (probeer
bij alle commando's - " /?" er juist achter)
gevorderd...
- attrib *.*
-h-r-s-a - verander
alle bestanden zodat ze zichtbaar zijn en veranderd /
geschrapt kunnen worden. (hidden, read-only, system,
archive)
- attrib *.*
+h+r - verberg alle
bestanden, en maak wijzigen onmogelijk
- attrib io.sys
-h-r-s-a - laat ons
toe io.sys te zien en te wijzigen <opletten: niet
wijzigen, tenzij je een goede boot disk hebt>
- time - toon de systeemklok, eventueel kan je de
tijd aanpassen
- date - idem voor de datum
- find /n
CTTY c:\command.com - zoek het woord CTTY in het bestand
command.com en toon op het scherm
- prompt $p$g - toon het station en de directory waar in
gewerkt wordt aan de gebruiker
- prompt $p$gTyp
Exit om terug te keren. . . - idem met deze tekst er bij...
- path - toon in welke directory's het systeem een
bestand zoekt als het hier (huidige directory) niet
gevonden wordt. Dit is het zoekpad.
- path=c:\tools;%path% - de directory c:\tools bij het
bestaande zoekpad bijkomend instellen
- deltree *.* - schrap alle bestanden, ook in de
subdirectory's (Let op hiermee! Niet doen in c:\)
- deltree /y *.* - idem maar zonder bevestiging te vragen
aan de gebruiker
- deltree /y *.*
>nul - idem en
zonder aan de gebruiker te tonen dat er iets geschrapt
wordt.
- label - naam van station (harde schijf of
diskette) zien en/of wijzigen
- fdisk - partities van een schijf wijzigen
(opletten hiermee voor gegevensverlies!)
- format a: - diskette formatteren voor gebruik met
Dos.
- format c: - harde schijf (of partitie) formatteren
voor Dos. (opletten - gegevensverlies!)
Met bestanden werken
(overschrijven, creëren), in- en uitvoer omleggen....
- dir
>a:\test.txt - toon
bestanden en subdirectory's, zet deze in een bestand
genaamd "test.txt". De schermuitvoer is door
het > teken omgelegd naar het bestand i.p.v. het
scherm ( het >- teken betekent:
stuur schermuitvoer naar)
- dir >prn - stuur het bestandsoverzicht onmiddellijk
naar de printer, zonder te tonen
- type test.txt - toon het bestand test.txt op
het scherm. Dit commando heeft hetzelfde resultaat als
copy test.txt con (kopiëer
<bestandsnaam> naar console)
- notepad
test.txt - vanuit
windows kan je dit commando ook geven, betekent zo veel
als start het bestand test.txt met het programma
notepad.exe (kladblok).
- echo blubber
>>test.txt -
voeg het woord "blubber" toe achteraan in het
bestand test.txt.
- echo Killroy
was here >test.txt
- de woorden "Killroy was here" in test.txt, de
vorige tekst wordt nu overschreven gezien maar één
">"-teken gebruikt wordt.
- type test.txt - toon nog eens
- echo rotschijf
>a.txt - maak een
bestandje a.txt met daarin het woord
rotschijf
- label
<a.txt - hernoem de
schijf naar het woord uit het bestand a.txt
(< : haal invoer van)
- echo rotschijf
|label - de huidige
schijf wordt nu in één commando hernoemd naar
rotschijf (het | - teken stuurt uitvoer van
één programma naar een ander programma)
- echo j |format
c: - de harde schijf
wordt onvoorwaardelijk geformatteerd (er wordt geen
bevestiging (j/n) gevraagd). (Bij engelstalig OS: gebruik
y i.p.v. j)
- echo j |format
c: >nul - idem en
zonder dat de gebruiker ziet dat er geformatteerd wordt.
- time
>>test.txt -
twee keer op [enter] duwen om de tijd niet te veranderen,
of
- echo. |time
>>test.txt - in
dit geval geen tweemaal op enter duwen (echo.
geeft een enter door)
- type test.txt - *slik* moet ik het nog zeggen...
> legt schermuitvoer om naar naar (een
bestand of apparaat met naam wat achter > staat).
Desnoods wordt een bestand met dezelfde naam
overschreven.
>>
voegt toe, achteraan
in een bestand. Indien het bestand niet bestaat, wordt
het aangemaakt.
< haalt invoer van (bestand of apparaat).
Apparaten zijn nul, clock$, aux, con, prn, com1 - com4,
lpt1...
- deltree /y
c:\temp - schrap
c:\temp met inhoud en subdirectories + alle inhoud van
subdirectories.
- deltree /y
c:\temp\*.* - schrap
alle bestanden en subdirectories in c:\temp, maar laat
c:\temp bestaan.
- copy clock$
test.txt - Als je dit
programma lang genoeg laat werken (onderbreken met Ctrl +
C) dan raakt de schijf vol. Kloktikken worden naar het
bestand geschreven, 1 Mbyte / minuut op een P75.
- netstat -a -n
30 >>log.txt -
geef alle adressen en poorten door van de
netwerkverbinding, zowel van mijn PC als van de PC op
afstand, doe dit om de 30 seconden en het resultaat
opslaan in een bestandje log.txt. Probeer nu
maar ongemerkt via het internet binnen te dringen in mijn
PC. Ook te onderbreken met Ctrl + C.
- copy test.txt
lpt1 - stuur het
bestand test.txt naar de printer (indien op
lpt1-poort).
- copy test.txt
prn - idem maar wordt
geprint, ook als de printer niet op de lpt1-poort staat.
- echo g=ffff:0
|debug - herstart je
PC "koud". Start debug, en voer de instructies
uit.
- choice /cy /n
/ty,9 >nul - Wacht
9 seconden. Letterlijk: start het programma choice,
geef de keuze y aan, toon geen keuze, wacht 9
seconden en kies zelf y; output niet tonen op
het scherm.
- echo rem je
ziet dit niet op je scherm >nul
>>c:\autoexec.bat - voeg het zinnetje rem je
ziet.enz.. op het einde van c:\autoexec.bat toe,
zonder dat de gebruiker de uitvoering van dit commando op
het scherm ziet.
- ctty nul - ok, nu loopt je systeem vast (als je
volledig in dos werkt). In- en uitvoer van het systeem
worden nu niet meer geleid van toesenbord en naar scherm,
maar "in de vuilbak" (nul).
- ctty con - invoer en uitvoer terug normaal (kan
alleen maar in een *.bat bestand worden gebruikt, indien
na "ctty nul". Uiteraard kan je dit commando
niet geven als het systeem je toetsenbord niet herkent.
(leuke melding! "error - keyboard not found - press
F1 to continue...)
- start
rundll32.exe rnaui.dll,RnaDial Online - of ook:
- rundll32
rnaui,RnaDial Ping -
opent vanuit Windows de verbinding met het internet. De
naam van de verbinding Online of
Ping moet je vervangen door de benaming die
je vindt onder Deze Computer - Externe
Verbinding. Let op het hoofdlettergebruik - dit
moet correct zijn. Start het bestant rnaui.dll (remote
network access user interface - dynamic linked library)
met rundll32.exe, ga naar de procedure RnaDial, en open
de connectie met naam Ping.
Varia...
copy con kill.com - Opgelet, we gaan een bestand schrijven,
uitvoerbaar, we mogen de bytes zelf invoeren met hun ascii-waarde
(copy apparaat console naar bestandsnaam)
- [Alt induwen] 2 4 0
[Alt loslaten] (F0 byte hex -
assembler "lock" commando)
- [Alt induwen] 1 5 [Alt
loslaten] (0F byte hex -
foutje en niet gedocumenteerd)
- [Alt induwen] 1 9 9
[Alt loslaten] (C7 en C8 bytes,
zetten het ax register
- [Alt induwen] 2 0 0
[Alt loslaten] van de processor
op waarde 0)
- F6- toets (einde bestand-teken)
- [enter] (bestand wordt nu geschreven)
- dir Nu zie je 'kill.com' staan. . .
- Indien je nu "kill [enter]" intypt, zal een pentium processor
stilstaan. Zelfs in Windows 95, Win NT, Unix, enz. enz.
Uitvoeren van deze code doet de processor gewoon
vastlopen. Foutje van Intel! Zelfs "mission
critical" besturingssystemen kunnen worden
stilgelegd, als ze draaien op een Pentium. Natuurlijk kan
ik meerdere ongeldige codes op deze manier aanmaken die
Windows en andere "goedkope" (lees
"eigenlijk niet veilige") systemen kunnen
stilzetten, maar deze bug doet het duidelijk beter. Oeps!
200.000.000 kwetsbare computers. Enkel OS/2 lijkt deze
ongeldige code op te vangen.
Het intypen van de karakters met Alt
<nummer ascii-symbool> levert nog enkele mooie
mogelijkheden op. Je kan een directory aanmaken, bvb. met het
commando md <Alt +255>test. Probeer maar te
openen, of te schrappen, als je het toetsenbord op de gewone
manier gebruikt.
Het is nuttig om de commandos aan te
leren van programmas zoals debug.exe en Qbasic.exe. Je kan
spectaculaire resultaten bereiken met beide programmas,
hoewel het aanleren van de prompt van debug niet
eenvoudig is. Qbasic daarentegen is een vrij eenvoudige
programmeertaal. Qbasic vind je op de Windows CD-rom onder
OldMsDos.
Als je meer van debug wil weten: start het
programma op, en typ ? (Enter). Om te verlaten:
q (Enter). Let op met commandos als w (write)
en g (go) als je niet goed weet wat je doet. In een fractie van
een seconde kan je de harde schijf verknoeien door willekeurige
gegevens te schrijven naar schijfsectoren. Bvb w b800:0000 2 0
ffff - schrijft willekeurige junk vanuit het
videogeheugengebied (B800:0000) naar harde schijf C: (a = 0, b =
1, c = 2) vanaf de eerste sector (MBR of sector 0) en
overschrijft 65535 (ffff hexadecimaal) sectoren. Instant party:
zelfs de partities van de harde schijf ben je kwijt op die
manier. De schijf kan dan niet geformatteerd worden. Waar is de
bootdisk met fdisk.exe op?
Een voorbeeldje van QBASIC: stel, je werkt op een Dos - Windows 3.x-machine.
Start Qbasic.exe, en typ in het venster van Qbasic de volgende
twee commandos:
open
c:\dit is.dos for binary as #1 - Open een binair bestand c:\dit is.dos
en kan handle nr 1 toe
close - Sluit het bestand terug (letterlijk: sluit alle
bestanden)
Duw nu op de toetsen (Shift)
+ (F5) om het programma te
starten. En sluit nu Qbasic, en probeer het (ongeldige, want
bevat een spatie in de naam) bestandje dit is.dos te
schrappen of te verplaatsen. Je moet terug naar Qbasic, en het
commando kill
c:\dis is.dos
starten om het vervelende bestandje kwijt te geraken. Uiteraard
heeft de Windows 9x - verkenner geen problemen met spaties in
bestandsnamen.
Batch-bestanden
Je kan commandos achter elkaar typen,
en in een bestand zetten met de uitbreiding bat. Dat
wordt dan een batch-bestand. Als je het uitvoert (de naam er van
ingeven in een command line prompt, of op het icoon
dubbelklikken) worden de commandos uitgevoerd. Je kan hier
een hele programmeeromgeving mee creëren, met een waaier van
mogelijkheden. Je kan een batch bestand aanmaken met een
tekst-editor, zoals de MS-dos edit, of windows
notepad.
De uitwerking van commandos
verbergen. Door een reeks commandos te plaatsen
tussen de ctty nul en ctty con kan je de
uitwerking van een batch-bestand verbergen voor de gebruiker. Wil
je toch iets tonen, leg dan de uitvoer om naar het scherm voor
het commando zelf. Het voorbeeld maakt dit duidelijk:
@CTTY NUL
ECHO Dit zal je
op je scherm zien >CON
ECHO Maar dit
niet.
CTTY CON
Meer hierover kan je vinden in de
nieuwsgroep alt.msdos.batch.
knip@bigfoot.com
Terug naar hoofdpagina