CMDLine - Hoe kijken of files al zijn geschreven..

Pagina: 1
Acties:

  • Donster
  • Registratie: Augustus 2006
  • Laatst online: 03-12-2025
Mijn torrent programma zet automatisch zijn afgewerkte bestanden in een dir op mijn pc.
Ik heb een batchfile gemaakt die simpelweg alle files zipped en ( na wat andere dingen) remote verstuurd.

Nu zit ik echter met het volgende probleem / vraag :
Stel het torrent programma schrijft zijn zooitje naar mijn dir "En op dat zelfde moment" gaat mijn batch bestanden inpakken en versturen etc.. dan krijg je dus incomplete files ( volgens mij zijn de bestanden geeneens bezet als ze worden geschreven..)

Hoe kun je met cmd/bat kijken of de bestanden echt helemaal in dir zijn geschreven alvoor je tot actie overgaat?

Ik zat te denken aan het volgende:
Steeds als er nieuwe files komen dan wacht de batch een X aantal seconden , zodra er dus geen files meer komen gaat hij zippen etc.. ( aangezien hij dan alle bestanden zipped en met die actie bezig is , maakt het volgens mij niet meer uit als er daarna nieuwe files komen .. die pakt hij pas weer in de volgende beurt .. als de batch opnieuw begint ... dacht ik?)

Hoe dan ook , weet iemand hoe je dit kan realiseren? - ben nog niet zo pro in batches schrijven :D


Alvast bedankt,
PS, En een GOED/GELUKKIG/VROLIJKE Kerst en Nieuwjaar toegewenst! _/-\o_

  • frenque
  • Registratie: November 2002
  • Laatst online: 12-02 21:22
een torrent heeft altijd een md5'je. even op zoek naar een cmd-tool wat md5 hashes uit kan rekenen ....

  • Donster
  • Registratie: Augustus 2006
  • Laatst online: 03-12-2025
Bedankt ,
1. maar het gaat niet om het torrent file , maar de output files.
2. Buiten torrent komen/zijn er nog andere programmas etc die hetzelfde doen. ( completed zooi naar dir schrijven)

3. Vraag is dus .. welke cmd code kan kijken of er nieuwe files/mappen in een dir worden geschreven , en vervolgens steeds een x aantal seconden aan pause (sleep) triggeren totdat er geens files/mappen meer worden geschreven naar de locatie..
Waarna er kan worden gezipped e.d.

[ Voor 3% gewijzigd door Donster op 25-12-2007 13:21 ]


  • Snake_Y_
  • Registratie: Oktober 2005
  • Laatst online: 15-01 16:35
Gewoon de simpele oplossing...

Als al je bestanden weggeschreven zijn, zet je een file (vb.: 'Transfervoltooid.txt') in je output
directory... Je batch programmaatje checked als deze file bestaat, bestaat deze nog niet,
dan is de transfer nog niet voltooid...

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Of je doet gewoon een filemove (filerename) ipv een filecopy, dan staat het bestand er direct. Of je plakt bijv ".temp" achter de bestandsnaam+extensie aan en verwijdert die pas zodra je klaar bent met filecopy, dan laat je die batch de ".temp" bestanden skippen.

[ Voor 6% gewijzigd door BalusC op 25-12-2007 13:33 ]


  • Donster
  • Registratie: Augustus 2006
  • Laatst online: 03-12-2025
Hopelijk is dit iets duidelijker ( stap voor stap):
1.De PROGRAMMA"S waaronder een torrentprogramma schrijven na het downloaden de bestanden naar een MAP.
2. In die MAP staat de batch die alle bestanden (behalve zichzelf) zipped en moved. , hij doet dit om het half uur.
3.Het (voorbeeld) torrent programma blijft doorblazen .. Zodra dat programma ( en andere programma's) net iets neerzetten , en mijn batch gaat lopen op datzelfde moment dan gaat het waarschijnlijk fout.

Batch moet dus kijken van 'heee Er worden op dit moment vanuit éen of meerdere programma's bestanden/mappen naar mijn dir geschreven .. ik wacht 10 sec en dan probeer ik het nog een keer.. ( als hij dat steeds doet als er nieuwe files of mappen komen dan moet het denk ik goed komen..)

De torrent/ nieuwsgroep programma's , die zijn uitgezocht "omdat ze als alles gedownload was netjes alles in een map konden schrijven. DAT is dus het probleem niet.
Nu moet alleen het batch bestand alleen nog weten "DAT" die programma's files aan het schrijven zijn , en hij dus even moet wachten tot die files volledig zijn wegeschreven.


Bij voorbaat dank ,
Ook voor de snelle reply's ( hoewel ik dis iets anders bedoelde :D)

[ Voor 4% gewijzigd door Donster op 25-12-2007 13:54 ]


  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Batch moet dus kijken van 'heee Er worden op dit moment vanuit éen of meerdere programma's bestanden/mappen naar mijn dir geschreven .. ik wacht 10 sec en dan probeer ik het nog een keer.. ( als hij dat steeds doet als er nieuwe files of mappen komen dan moet het denk ik goed komen..)
Voor de duidelijkheid: zo'n commando bestaat niet. Vandaar onze suggesties.

  • Donster
  • Registratie: Augustus 2006
  • Laatst online: 03-12-2025
Ok .. dan wordt het lastig :D

Mischien kan iemand me nog helpen met een ander dingetje wat ik moet hebben (waarschijnlijk super eenvoudig ..)
Stel je wilt alle files moven "behalve" xls en doc bestanden .. hoe exclude je die dan?

[ Voor 3% gewijzigd door Donster op 25-12-2007 14:21 ]


  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

In batch? Geen idee :) Je zit hier trouwens feitelijk verkeerd, in PRG. Batchscripting is geen programming.

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

je kan proberen om elke file exclusief te openen voor je het kopieert.
Aangezien je in PRG zit kun je dit wsch wel in elkaar stoppen?

ASSUME makes an ASS out of U and ME


  • Toolskyn
  • Registratie: Mei 2004
  • Laatst online: 17-01 13:13

Toolskyn

€ 500,-

frenque schreef op dinsdag 25 december 2007 @ 13:15:
een torrent heeft altijd een md5'je. even op zoek naar een cmd-tool wat md5 hashes uit kan rekenen ....
Hier zit anders wel iets handigs, aangezien je torrent bestand een boel md5 hashes bevat om te controleren of je bestanden goed zijn overgekomen kun je je torrent bestand natuurlijk gebruiken om te controleren of bestanden al volledig binnen zijn, door een hash te maken van elk bestand en dat te vergelijken met de hash in het torrent bestand. Als een hash overeenkomt is het bestand binnen, anders moet je nog even geduld hebben.

gewooniets.nl


Verwijderd

-snip-

[ Voor 96% gewijzigd door Verwijderd op 29-05-2008 11:33 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Lijkt me meer iets voor WOS

PRG >> WOS

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • denivan
  • Registratie: September 2002
  • Laatst online: 20-02 13:53

denivan

de enige

Lijkt me niet mogelijk om zoiets voor mekaar te krijgen. Downloadclients (voor usenet bvb newsleecher) hebben wel de mogelijkheid om een programma aan te roepen als de queue leeg is. Lijkt me dus 't beste om op die manier je batch file aan te roepen ?

Last night I lay in bed looking up at the stars in the sky and I thought to myself, "Where the heck is the ceiling?!"


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Die twede vraag: je kunt dat met een FOR loopje waarschijnlijk wel voor elkaar krijgen, direct of via de omweg van de output van 'dir /b /s'.

Het eerste: misschien kan je wat bereiken met de output van een tooltje als WhoLockMe (maar dan een versie die ook via de commandline is aan te roepen). Ik zou trouwens eerder denken aan (PowerShell of) WSH/VBScript om het te maken. Ten eerste omdat dat meer kracht heeft, ten tweede omdat het tenminste geen 'lelijk zwart scherm' in beeld laat.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Wat F_J_K ook al zegt, je kan dat met DIR vrij gemakkelijk doen:

:CHECKFORCHANGE
DIR >file-one.txt
sleep 30
DIR >file-two.txt
fc file-one.txt file-two.txt
IF %ERRORLEVEL% EQU 1 GOTO CHECKFORCHANGE

ECHO Zippen maar..
Pagina: 1