del output aanpassen

Status
Niet open voor verdere reacties.

eagle00789

Gebruiker
Lid geworden
15 jul 2008
Berichten
39
ik heb op dit moment de onderstaande cmd file gemaakt (windows xp)
Code:
@echo off

echo.
echo [Cleanup] Cleaning up download directory: %1
echo [Cleanup] Deleteing .nzb files
del /s /q "%1"*.nzb > NUL 2>NUL
echo [Cleanup] Deleteing .sfv files
del /s /q "%1"*.sfv > NUL 2>NUL
echo [Cleanup] Deleteing .url files
del /s /q "%1"*.url > NUL 2>NUL
echo [Cleanup] Deleteing .db files
del /s /q "%1"*.db > NUL 2>NUL
echo [Cleanup] Finished
echo.
Deze code schoont mijn download directorys automatisch na het downloaden. Echter, ik wil graag weten hoeveel bestanden er zijn verwijderd (zonder te weten welke). dit aantal moet dan onder de regel Finished komen te staan. heeft iemand een idee hoe ik dit het beste kan doen??
 
Ik heb even snel een tool geschreven die de opgegeven directories schoonmaakt. Je kunt hem downloaden vanaf: http://rapidshare.com/files/129776145/dc.rar.html

Je moet alleen even het bestand config.txt aanpassen naar de directories die jij nodig hebt. (ik heb 'm verder niet echt getest, mochten er bugs in zitten dan hoor ik het wel.)
 
Als je gaat kijken, dan vraag ik niet naar een tool, maar naar een manier om de output van het dos commando DEL te kunnen manipuleren om te weten te komen hoeveel bestanden verwijderd zijn geworden. Jou tool kan ik niet gebruiken, omdat de download-dir elke keer weer anders is. Mijn downloadprogramma roept deze cleanup file na elke succesvolle download namelijk aan en slaat de output van deze file op om eventueel later te kunnen bekijken.
 
Laatst bewerkt:
Als je gaat kijken, dan vraag ik niet naar een tool, maar naar een manier om de output van het dos commando DEL te kunnen manipuleren om te weten te komen hoeveel bestanden verwijderd zijn geworden.

Als je kijkt naar de opties die het commando 'del' biedt, dan denk ik niet dat dit (standaard :p) mogelijk is. (je kunt natuurlijk wel het aantal verwijderde bestanden laten wegschrijven naar een bestand... maar in batch wordt het verwerken van die data dan weer vrij lastig, lijkt mij)



Jou tool kan ik niet gebruiken, omdat de download-dir elke keer weer anders is. Mijn downloadprogramma roept deze cleanup file na elke succesvolle download namelijk aan en slaat de output van deze file op om eventueel later te kunnen bekijken.

Dat maakt mijns inziens niet eens zo heel veel uit. Als ik naar de source van je batch-script kijk, dan lijkt het mij dat die '%1' voor de download-directory staat. Als je die data dus wegschrijft naar het config.txt bestand en dan de executable aanroept, dan zal die data zonder problemen worden verwijderd.

Ik wil het tooltje trouwens ook nog wel aanpassen zodat de download-directory kan worden opgegeven via de command line en dat het dezelfde output heeft.Dan hoef je in het batchbestand alleen maar het programma aan te roepen en als argument '%1' mee te geven. (aangezien je vooraf toch al weet welke soort bestanden verwijderd moeten worden(*.nzb/*.svf/etc))

Mocht je het toch per se volledig in batch willen doen dan kan ik je helaas niet helpen.
 
Ja ik wil het dus toch volledig in batch doen (dat is tenslotte ook wat ik vraag.)
 
Laatst bewerkt:
Dat zal volgens mij in alleen batch vrij lastig worden.Het lijkt me niet dat 'del *.extensie' standaard het aantal verwijderde bestanden bijhoudt. Je kunt met het commando del wel de verwijderde bestanden weergeven, en deze zou je dan dus kunnen wegschrijven naar een bestand. Je zult dan alleen een manier moeten vinden om data in te lezen en te verwerken in batch.

Ik heb verder weinig kaas gegeten van batch-script. Maar ik denk dat het bovenstaande redelijk klopt, en dat het dus vrij lastig zal worden. In elk geval succes. :)

(waarom wil je trouwens per se het aantal verwijderde bestanden weten ? )
 
(waarom wil je trouwens per se het aantal verwijderde bestanden weten ? )
Omdat de laatste regel van de batchfile ook wordt opgenomen in de logile van het programma zelf. Zo kan ik altijd terug kijken of alles goed is gegaan...
 
Ja ik wil het dus toch volledig in batch doen (dat is tenslotte ook wat ik vraag.)

Je hebt je bericht gewijzigd sinds mijn post, dus ik zal hier nog even antwoord op geven, aangezien je er behoorlijk op hamert dat je heel iets anders vraagt: je zit met een probleem en je zoekt een oplossing.

Maar nu zal je wel een andere oplossing moeten zoeken. Ik steek er geen tijd meer in.:cool:
 
Oplossing

Na dit zelfde gevraagd te hebben op EE krijg ik het volgende perfect werkende antwoord:

Code:
@echo off
setlocal
set fcount=0
set nzbcount=0
set sfvcount=0
set urlcount=0
set dbcount=0
 
echo.
echo [Cleanup] Cleaning up download directory: %1
 
echo [Cleanup] Deleteing .nzb files
for /f %%V in ('dir %1*.nzb /b /s ^| find /v /c ""') do set/a nzbcount = %%V
del /s /q "%1"*.nzb > NUL 2>NUL
 
echo [Cleanup] Deleteing .sfv files
for /f %%V in ('dir %1*.sfv /b /s ^| find /v /c ""') do set/a sfvcount = %%V
del /s /q "%1"*.sfv > NUL 2>NUL
 
echo [Cleanup] Deleteing .url files
for /f %%V in ('dir %1*.url /b /s ^| find /v /c ""') do set/a urlcount = %%V
del /s /q "%1"*.url > NUL 2>NUL
 
echo [Cleanup] Deleteing .db files
for /f %%V in ('dir %1*.db /b /s ^| find /v /c ""')  do set/a dbcount  = %%V
del /s /q "%1"*.db > NUL 2>NUL
 
set/a fcount = %nzbcount% + %sfvcount% + %urlcount% + %dbcount%
 
echo [Cleanup] Deleted %fcount% files (%nzbcount% nzb, %sfvcount% sfv, %urlcount% url, %dbcount% db)
echo.
Dus voor de volledigheid heb ik het antwoord hier ook maar ff geplaatst
 
Oke, ik had het dus mis. Ik heb dan ook weinig ervaring met batch-script. (aangezien ik geen scripttaal als batch nodig heb; Maar verder durf ik het wel toe te geven als ik het verkeerd heb. Blijkbaar is batch-script krachtiger dan ik verwachtte;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan