Pagina 1 van 1

bestanden zoeken & verwijderen

Geplaatst: 29 jul 2008, 07:23
door Peterken
Weet er iemand hoe je met een batch file naar een bepaald bestand in meerdere dirs kunt zoeken en deze verwijderen?

De bedoeling is om een bestand te verwijderen uit meerdere profielen. Ik vermoed dat het zal moeten beginnen met FOR maar verder zou ik het niet weten en google kon me ook niet wijzer maken.

Alvast bedankt voor de hulp!
P

Geplaatst: 29 jul 2008, 09:09
door meon
Ik heb dit niet uitgetest, maar in m'n hoofd zou het er zo uit kunnen zien:

Code: Selecteer alles

@echo off
cd \
dir /s filename.ext | find "Directory of" > tempfile.txt
for /f "tokens=3 delims= " %i in (tempfile.txt) do del /q %a
del /q tempfile.txt
Let wel: heel erg traag, aangezien dir /s uw hele harde schijf gaat doorzoeken.

Geplaatst: 29 jul 2008, 10:36
door Peterken
Hey meon, ik krijg altjid bijna dezelfde output in die tempfile.txt, ongeacht waar ik naar zoek en op die locaties staan dan ook nog eens niet die bestanden. :think:
Ik heb zelfs een uniek bestand aangemaakt en ook dat geeft niet het gewenste resultaat.

Ik wil in c:\documents and settings zoeken, dus dat valt wel mee qua tijd.
Dit is hetgeen ik doe:

Code: Selecteer alles

dir c:\documents and settings /s <filenaam in 8.3 notatie> | find "Directory of" > tempfile.txt

Geplaatst: 29 jul 2008, 10:52
door meon
Ehm, wat jij schrijft kan niet volgens mij.
Je zal eerst cd Docs & sets moeten gaan en vanaf die plek dan dir /s filename.txt enz moeten doen.

Geplaatst: 29 jul 2008, 10:57
door Peterken
ah jawel hé, je kan perfect achter het dir commando opgeven welke directory hij moet listen.

Uit de help v/h dir commando:

Code: Selecteer alles

DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
  [/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]

  [drive:][path][filename]
              Specifies drive, directory, and/or files to list.

Geplaatst: 29 jul 2008, 11:22
door meon
Joma, gij doet "dir FILE /s FILE", dus 2x een pad opgeven...

Geplaatst: 29 jul 2008, 11:25
door Peterken
joma nee hé, ik geef de directory mee van waaruit ik wil zoeken.
Dat werkt, probeer maar eens om bv vanuit een subdir de inhoud van de root te listen.

Geplaatst: 31 jul 2008, 23:05
door Peterken
Je had idd gelijk meon. :smash2: Ik dacht in 1 commando zowel het pad waarin + het bestand mee te geven waarnaar er moet gezocht worden.
De inhoud van die tempfile bevat nu telkers per regel die 'Directory of' + de dir waarin het bestand werd gevonden.
Het wissen gebeurt nochtans niet...

Geplaatst: 01 aug 2008, 13:52
door BungaMan

Code: Selecteer alles

for /f "tokens=3 delims= " %i in (tempfile.txt) do del /q %i
met die tokens dan steekt hem de eerste token in dezelfde variabele waar de lijn mee uit de file wordt gehaald.

Heb het niet getest maar kunt ook alles in 1 lijn proppen denk ik

Code: Selecteer alles

for /f "tokens=3 delims= " %i in (`dir /s filename.ext | find "Directory of"`) do del /q %i

Geplaatst: 02 aug 2008, 12:03
door Peterken
BungaMan, dat lijkt ook niet te werken.
Zou het kunnen dat het del commando misgaat omwille van de spaties in het pad?

Ik krijg volgende foutmelding: "Could Not Find C:\Documents and Settings\%a"
Wat zijn die %i en %a?

Kent er iemand een duidelijke website met de uitleg van deze meer geavanceerde batch commando's?
Simpele batchfiles lukt me nog maar zoiets als dit.... :bang:

Geplaatst: 02 aug 2008, 12:10
door Astralon

Geplaatst: 02 aug 2008, 12:27
door meon

Geplaatst: 02 aug 2008, 12:32
door Astralon
Inderdaad, ziet er zeer goed uit. Thanks