Archief - [PROG]dos dos batch file

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Manuuz

Legacy Member
Hallo,

Ik zit met een probleempje ivm een dos cursus.
De opgave is als volgt:
Maak een batch file die de inhoud van een opgegeen directory volledig wist, tenzij er bijkomende parameters meegegeven worden van files die NIET gewist mogen worden.

bv: c:\>wis c:\oefends land.txt tekst.txt -> wist de inhoud van oefendos, behalve die twee files!

Het aantal opgegeven files die niet gewist mogen worden is een variabel aantal.

Ik was er al mee begonnen, dus eerst controleer ik of die directory bestaat, ( die directory steek ik in een variabele )
Toen wou ik deltree gebruiken, maar ja, die wist alles.
Ik geraak gewoon niet op weg.
Misschien del *.* if *.*!= %1 ( waar %1 dan bv een variable is die verwijst naar een parameter )

Kan iemand me op weg helpen ?
tx

schop aars

Legacy Member
gewoon ne loop maken die alle files afloopt in den directory en verwijdert behalve als ze meegegeven werden als parameter

Manuuz

Legacy Member
mja ik versta "hoe" ik het moet doen, maar kan het niet in dos doen, in die batch file..
"gewoon zo" is makkelijk gezegd. Ik weet hoe een lus, en if enzo werkt,maar mja, zo geraak ik er neit, toch bedankt

Kemblin

Legacy Member
misschien de bestanden die je niet mag wissen even tijdelijk in een nieuwe map zetten en dan achteraf terugzetten en tijdelijke map verwijderen

Manuuz

Legacy Member
Ook aan gedacht, zou inderdaad een oplossing kunnen zijn. Maar ik heb zo een vermoeden dat het niet op die manier moet opgelost worden.
In ieder geval, als ik het vind, post ik het nog .

ShPonGle

Legacy Member
FOR /R padvandemapmetallefiles %%G IN ("specifiekkenmerkvandefilesdienietgewistworden") DO copy "%%G" "specifiekkenmerkvandefilesdienietmogengewistworden" padvantijdelijkemapwaardezefilesgezetworden

daarna wist ge ALLE files del pad\*.*
en kopieert ge daarna de tijdelijk aan de kant gezette files terug naar de originele map, waarna ge de tijdelijke map en haar files weer wegwist

%%G staat voor een variable (letter doeternietoe), de waarde van die variable zet ge daarna tussen de quotes

/R: staat voor recursief: pakt ook onderliggende files en folders mee

FOR: staat voor voorwaarde: alleen in deze cases
DO staat voor "vervul de volgende opdracht als de voorwaarde vervuld is", de opdracht is hier een copy

denk dat zoiets u verder op weg kan zetten
ik heb ook ongeveer zo'n batch lopen en die werkt prima ;)

goeie site waar ik veel over dos prog geleerd heb is
http://schrooten.studentenweb.org/batch_inhoudstafel.html#inhoudstafel
bij "FOR" staat dit alles ook uitgelegd btw
alsook hier: http://www.ss64.com/nt/for.html

Manuuz

Legacy Member
tx, maar ipv move misschien attrib +R

tx in ieder geval, ook voor de links!
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan