[Scripting] directorystructuur archief reorganiseren*

Pagina: 1
Acties:
  • 625 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • engelbertus
  • Registratie: April 2005
  • Laatst online: 12-09 15:02
hallo ik heb een archief hier, met een bepaalde directorystructuur, die ik om wil bouwen naar iets dat wat overzichtelijker en makkelijker werkt.

het gaat om 4500 bestanden in 760 mappen, en een omvang van 3 GB

het "probleem" is ontstaan door het toevoegen van sorten data aan het archief.

eerst werden tekeningen digitaal opgeslaen, jaren later ook de berekeningen en nog later werden er fotos opgeslagen

dit resulteerde in een structuur als volgt:

archief
|- tekeningen\jaar\werknummer\bestanden en subdirectories met bestanden
|- berekenigen\jaar\werknummer\bestanden en subdirectories met bestanden
|- fotos\jaar\werknummer\bestanden

hierin staat jaar voor het jaar waarin de weken zijn ingeboekt, en de werknummers zijn als volgt opgebouwd, 2 cijfers met de laatste tekens van het jaar, en vervolgens 3 voor een nummer dus bijvoorbeeld 00003 voor het derder werknummer in het jaar 2000. de problemen die je dan elke zoveel jaar krijgt met dubelle werknummers zijn niet zo belangrijk.

nu wil ik er het volgende van maken:
archief
|- jaar
....|-werknummer
........|-tekningen
........|....|-bestanden en subdirectories met bestanden
........|-berekeningen
........|....|-bestanden en subdirectories met bestanden
........|-fotos
.............|-bestanden en subdirectoies met bestanden

ik kan hiervoor geen move gebruiken omdat die niet meerdere bestanen naar een niet bestaande directorie kan verplaatsen. bestaat de directorie wel, dan worden subdirectories niet meeverplaatst, en verplaats ik directories, dan verplaatst hij de directorie 00069 naar de subdirectorie tekeningen, wat niet gewenst is natuurlijk

ik kan xcopy gebruiken, maar dat heeft als nadeel dat het erg lang duurt, en dat ik niet kan zien welke bestanden gekopieerd zijn ( de bestaande directoriestructuur is niet erg strict, dus er valt wel eens iets buiten de gebaande paden.
met move zou ik dan gewoon de overblijfselen met de hand kunnen aanpassen, maar move werkt dus niet.

ik zoek dus eigenlijk naar en kruising tussen xcopy en move, of een script dat zoiets doet.
heeft iemand ooit zoiets gemaakt? want ik kan geen bestaande tools vinden die dit doen, terwijl de "operatie" mij toch wel een simpele straight forward actie lijkt.

ik kan zelf niet programeren, dus met variabelen werken die dan gaat kijken of directories bestaan, en die dan wel wel of niet worden aangemaakt en de bijbehorende bestanden dan verplaatst is te complex voor mij.

op zich werkt xcopy c:\archief\tekeningen\2000\00069\* c:\archief2\2000\00069\tekeningen /i /s maar dan heb ik achteraf geen controle van wat er gebeurd is, behalve dan dat ik weer met de hand al die directories ga vergelijken, wat niet de bedoeling is.

het doorlopen van jaren en werknummers had ik al iets bedacht in excel, waarmee ik dan een batchbestand kan maken. opzich ook geen schoonheidsprijs, maar het leek me makkelijk, maar ht werkt dus niet zoals ik had verwacht.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Waar hoort mijn topic?
Als je niet wilt/kunt programmeren hoort je topic dus niet in PRG maar in CSA ;)

PRG >> CSA

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


Acties:
  • 0 Henk 'm!

Verwijderd

Schaf een digitaal archief aan zou ik zeggen. Maw een software oplossing voor digitaal archiveren.

Wellicht geen direct antwoord de vraag die je stelt, maar is juist voor zulke situaties ideaal.

[ Voor 33% gewijzigd door Verwijderd op 10-07-2007 15:33 ]


Acties:
  • 0 Henk 'm!

  • engelbertus
  • Registratie: April 2005
  • Laatst online: 12-09 15:02
het zijn geen gescande documenten oid. het zijn gewoon bestanden geproduceerd met computerprogrammas, dus cad tekeningen en modelbestanden voor berekeningen.
die programmas slaan dus bestanden op waar jij ze wilt. maar eens ze er staan, kun je de structuur die ooit is opgezet niet makkelijk meer aan.

een digitaal acrhief is ook niet meer aan te passen wat dat betreft, mocht je een structuur willen veranderen.
het gaat er dus niet om hoe we het in de toekomst doen maar hoe ik de bestaande bestanden nu kan reorganiseren. het archief dat we hebben is nu al digitaal he ;-) alleen niet in de meest handige ( lees onhandige) strctuur.


Maar goed. na de verplaatsing naar csa, zal er wel geen enkele programeur zijn die zijn licht hierover zal latens schijnen.

Ik hoop toch dat er hier dan wel mensen zitten die hier iets zinnigs over kunnen zeggen. een tool hebben gezien of geschreven of een richting weten waarin ik wel iets kan vinden.

de bedoeling is namelijk om het op te lossen en niet om het probleem te bediscussieren.

[ Voor 28% gewijzigd door engelbertus op 10-07-2007 16:12 ]


Acties:
  • 0 Henk 'm!

  • sanfranjake
  • Registratie: April 2003
  • Niet online

sanfranjake

Computers can do that?

(overleden)
Op verzoek CSA > WOS

Mijn spoorwegfotografie
Somda - Voor en door treinenspotters


Acties:
  • 0 Henk 'm!

  • PcDealer
  • Registratie: Maart 2000
  • Laatst online: 24-08 03:17

PcDealer

HP ftw \o/

engelbertus schreef op dinsdag 10 juli 2007 @ 15:27:

ik kan hiervoor geen move gebruiken omdat die niet meerdere bestanen naar een niet bestaande directorie kan verplaatsen. bestaat de directorie wel, dan worden subdirectories niet meeverplaatst, en verplaats ik directories, dan verplaatst hij de directorie 00069 naar de subdirectorie tekeningen, wat niet gewenst is natuurlijk

ik kan xcopy gebruiken, maar dat heeft als nadeel dat het erg lang duurt, en dat ik niet kan zien welke bestanden gekopieerd zijn ( de bestaande directoriestructuur is niet erg strict, dus er valt wel eens iets buiten de gebaande paden.
met move zou ik dan gewoon de overblijfselen met de hand kunnen aanpassen, maar move werkt dus niet.

ik zoek dus eigenlijk naar en kruising tussen xcopy en move, of een script dat zoiets doet.
heeft iemand ooit zoiets gemaakt? want ik kan geen bestaande tools vinden die dit doen, terwijl de "operatie" mij toch wel een simpele straight forward actie lijkt.

ik kan zelf niet programeren, dus met variabelen werken die dan gaat kijken of directories bestaan, en die dan wel wel of niet worden aangemaakt en de bijbehorende bestanden dan verplaatst is te complex voor mij.

op zich werkt xcopy c:\archief\tekeningen\2000\00069\* c:\archief2\2000\00069\tekeningen /i /s maar dan heb ik achteraf geen controle van wat er gebeurd is, behalve dan dat ik weer met de hand al die directories ga vergelijken, wat niet de bedoeling is.

het doorlopen van jaren en werknummers had ik al iets bedacht in excel, waarmee ik dan een batchbestand kan maken. opzich ook geen schoonheidsprijs, maar het leek me makkelijk, maar ht werkt dus niet zoals ik had verwacht.
Weet je hoe de move en copy functie in Windows Explorer/Verkenner werkt? Precies wat je wilt: hele directories moven. Wel eerst juiste dir aanmaken.

LinkedIn WoT Cash Converter


Acties:
  • 0 Henk 'm!

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Ander alternatief is robocopy, of je gaat met VBscript's FileSystemObject aan de gang :)
rocobopy heeft een prima log parameter, dan kan je altijd achterhalen wat er precies gebeurd is.

Evengoed is het wel verstandig een goede layout eerst te modelleren, en eventueel te testen met een fake archief.

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


Acties:
  • 0 Henk 'm!

  • engelbertus
  • Registratie: April 2005
  • Laatst online: 12-09 15:02
tja ik had eerst een fake tree opgezet met wat bestanden er in, ereste probleem was al dat er per dir maar 1 file in stomnd zodat een klein testje met move in eerste instantie wel leek te werken, maar met meer bestanden dus een probleem ontstond

met explorer is het onmogelijk om dmv copy of move een hele tree te moven of copyen, met inbegr9ip van het toevoegen van bijvoorbeeld een map "tekeningen" of "berekeningen"

zoals je ziet moet iets als \berekeningen/2001/02001/file.ext omgetoverd worden in /2001/01001/berekeningen/file.ext
dat zie ik nmiet gebeuren met copy of move, zowel in explorer als met dos.
voor 1 bepaalde file gaat dat wel, maar voor een directory wordt het al snel minder.

xcopy komt aardig in de buurt, maar dan blijft het probleem dat ik alles met de hand moet controleren. het archief heeft hier en daar geen stricte navolging van de naam, er zitten wel eens irectories tussen als /2001/010010-bestek/file.ext

ik zal eens naar robocopy kijken, maar ik geloof dat ik dat al eens had bekeken.( had heel download.com bijvoorbeeld al eens afgespeurd naar alles wat kon copieren of verplaatsen of sloeg op archiveren.

verder vbscript gaan mijn haren recht van overeind staan ;-) niet dat ik het slecht vind, maar dat ik er niet veel van begrijp. je moet er een hele hoop in definieren, hebt bepaalde naamgevingen nodig voor objecten die je wilt veranderen, die ik niet weet, en ik weet ook niet welke objecten ik mee aan de slag zou kunnen gaan. dan nog uitvinden hoe je de objecten kunt manipuleren en hoe je met die lijsten met bestandsnamen en directories die je met vbscript moet ophalen en verwerken.

vandaar dat ik steeds weer met xcopy of move etc kom, omdat die gewoon alles na de laatste / in de source nemen, en verplaatsen naar de laatste / in je target. probleem is dan hoe ik source logisch kan omzetten in een target zonder eerst de source uit te lezen en te bewerken ( dat doet move of xcopy ook niet en hoe ik een deel van een pad moet splitsen in directories en dan van volgorde veranderen, of er iets aan toevoegen is voor mij te veel gegoochel met variabelen en lijsten. wat dat betreft durf ik niet op mijn programeerkunsten te vertrouwen en neem ik liever genoegen met xcopy en dan handmatig checken al zal ik daar dan wel een aantal uur mee bezig zijn, en het kopieren een aardig tijdje in beslag zal nemen.

ik test nu trouwens op een lokale kopie vn het totale archief. dus fouten moeten nu toch wel naar boven komen als ik iets heb bedacht dat niet werkt.

en over het model. op zich is de benadering zoals dat nu is wel oik, maar kun ej niet in 1 opslag zien of er bij de tekening uberhaupt een berekening zit bijvoorbeeld. er zijn nu eigenlijk 3 apparte archieven.

de nieuwe situatie is daardoor overzichtelijker, en makkelijker te beheren. ( van de lopende werken naar te archiveren en daarna, na opschonen naar het archief verplaatsen betreft per project straks maar 1 directorie, en niet zoeken in drie apparte archieven.

omdat het archief toch een handmatig proces is maakt het daarbij niet uit dat het opzoeken van te archiveren werken in de verkenner gebeurt en niet is geauytomatiseerd, het is daarom ook niet nodig hier een applicatie voor teschrijven als een "digitaal archief"
zoals werd voorgesteld. versioning of een overzicht in de tijd is voor ons geen meerwaarde. de administratie daarvan zegt voor ons genoeg, en dat wordt wel door een applicatie bijgehouden. die applicatie kan ook samenwerken met een directoriestructuur,
maar niet met drie verschillende, zoals in de huidige structuur. het is dus eenvoudiger (in gedachten dus, om de structuur maar aan te passen, ipv die applicatie om te bouwen. dat zou dan ook extern moeten gebeuren omdat we niet echt iemand in huis hebben die met vb(script) kan werken.

eerst dat robocopy opzoekn maar dan ;-)

[ Voor 20% gewijzigd door engelbertus op 12-07-2007 00:53 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Voor 760 mappen met uitzonderingen ben je imo al snel meer tijd kwijt met een script-oplossing bedenken dan wanneer je 't met de hand doet. De nieuwe mappenstructuur kan je scripten, ik zou 't daarna handmatig afmaken. Weet je meteen zeker dat je alle uitzonderingen afvangt.

Sowieso zou ik voor de makkelijkste oplossing gaan, niet de 'mooiste' ;)

Acties:
  • 0 Henk 'm!

  • engelbertus
  • Registratie: April 2005
  • Laatst online: 12-09 15:02
de uitzondringen zijn niet echt omvangrijk, en zodoende zou ik met move alleen de uitzonderingen overhouden. move werkt niet, xcopy werkt wel, maar dan kan ik niet zien welke zaken dus blijkbaar een uitzondering waren, en ik dat met de hand 1 voor 1 moest uitzoeken. dat zou bijna evenveel werk zijn als met de hand verplaatsen en voor elk project drie diectories maken, met de hand.

ik had in excell een lijst gemaakt die adh van een jaartal een lijst maakt met werknummers, en die samenvoegt tot een source en target, zodat ik gewoon een commandline commando kon samenstellen in excel. dan kreeg ik in excell dus een lijst van alle mogelijke sources en targets. die ik aan move kon voeren. knippen, plakken in een batchfile, viola. maar move en copy konden beide niet wat ik had willen hebben. xcopy kwam in de buurt.


Ik heb nu adhv de suggestie van robocopy wat gezocht en heb gezien dat ik daar op zich niet verder mee kom dan xcopy, maar kwam op wikipedia wel xxcopy tegen, dat na het kopieren de sourcefiles wel kan verwijderen, en lege directories overslaat, en wel wildcards in de padnaam kan accepteren. dus volgens mij moet het met xxcopy wel gaan!

dus volgens mij ben ik zo wel op het goede spoor morgen op het werk maar eens een testje doen, anders wordt het inderdaad handwerk icm xcopy


wat mij zo frustreerde is dat het eigenlijk een vrij simpele operatie is, maar dat er geen tool voor bestond wat ik wilde was eigenlijk niet afhankelijk van een naam in de source of target dus vrij simpel. de source->target lijst had ik immers al in excel klaar gemaakt. al hadik liever gezien dat er een tool was die elke (subdirectorie in de tree een soort "level" nummer gaf, waarmee je dan in de target kon gaan spelen, al of niet extra mapnamen toevoegend. dan kan het zonder voorgekookte lijst, en zonder vbscript
hieronder het idee:
c:(level1)\archief(level2)\berekeningen(level3)\2003(level4)\03001(level5)\(level6)
tussen haakjes dan de levelnummers die aan de delen van het pad worden toegekend
dan kon je bij target hetolgende opgeven:
c:\nieuw-archief\level4\level5\level3\eigen_berekeningen\level6
level 6 staat dan voor de complete inhoud van die directorie, dus met inbegrip van alle subdirectories etc.
eigen berekeningen voeg je dan toe om bijvoorbeeld tekeningen van andere partijen in submappen van de tekeningen te kunnen opslaan.
en eventueel zou je dan nog iet kunnen toevoegen als een counter, zodat je bijvoorbeeld iets zou kunnen (her)nummeren.

Acties:
  • 0 Henk 'm!

  • PcDealer
  • Registratie: Maart 2000
  • Laatst online: 24-08 03:17

PcDealer

HP ftw \o/

engelbertus schreef op donderdag 12 juli 2007 @ 00:45:

met explorer is het onmogelijk om dmv copy of move een hele tree te moven of copyen, met inbegr9ip van het toevoegen van bijvoorbeeld een map "tekeningen" of "berekeningen"
Dat zeg ik: je kan een hele tree moven of kopiëren, maar niet i.c.m. aanmaken nieuwe dir. Dat zou je in Explorer apart moeten doen.

LinkedIn WoT Cash Converter


Acties:
  • 0 Henk 'm!

  • engelbertus
  • Registratie: April 2005
  • Laatst online: 12-09 15:02
ja, dast bedoel ik dus nmet "met de hand" voor elk project in de afgelopen 20 njaar met 200 werken per jaar 3 directories maken, en vervolgens elke keer de inhoud van a naar b slepen.

en daar had ik nou niet echt veel zin in, en er kan veel mis gaan ;-)

xxcopy doet inmiddels gewoon wat ik zocht ;-)

Acties:
  • 0 Henk 'm!

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

engelbertus schreef op donderdag 12 juli 2007 @ 01:35:
ik had in excell een lijst gemaakt die adh van een jaartal een lijst maakt met werknummers, en die samenvoegt tot een source en target, zodat ik gewoon een commandline commando kon samenstellen in excel.
[...]

Ik heb nu adhv de suggestie van robocopy wat gezocht en heb gezien dat ik daar op zich niet verder mee kom dan xcopy, maar kwam op wikipedia wel xxcopy tegen, dat na het kopieren de sourcefiles wel kan verwijderen, en lege directories overslaat, en wel wildcards in de padnaam kan accepteren. dus volgens mij moet het met xxcopy wel gaan!
Als je robocopy met de juiste switches gebruikt kan je dat ook daarmee doen.
En je Excel template techniek gebruik ik zelf ook bij grote hoeveelheden hoor :)

Maar goed, je bent al een heel eind gekomen :)

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


Acties:
  • 0 Henk 'm!

  • engelbertus
  • Registratie: April 2005
  • Laatst online: 12-09 15:02
ja xxcopy werkt ideaal, ik had dat van robocopy gezien, en was opzoek naar wat het kon, en wat het niet kon, en kwam op wikipedia terecht. omdat daar in eerste instantie bleek dat robocopy niet kon wat ik wilde, en er een vette link in stond naar xxcopy dat dan meer in huis zou hebben dan robocopy en xcopy van MS was mijn interesse natuurlijk meteen verplaatst.

ik gebruik nu xxcopy. dat werkt hetzelfde als xcopy, maar je kunt er ook een switch aan hangen die de gecopieerde bestanden uit de source verwijderd.

xxcopy c:\archief\berekeningen\2004\04001\ c:\archief-nieuw\2004\04001\berekeningen /s /i /rcy
/i is eigenlijk hier overbodig, maar voor de volledigheid vermeld ik deze toch, die wordt namelijk verondersteld door xxcopy als je meerdere bestanden tegelijk copieert, en een \ aan het eind van ej source hebt.
/s is hetzelfde als onder dos geruikelijk is
/rc verwijdert de bestanden die juist gekopieerd zijn uit de source. /rcy doet dit zonder om bevestiging te vragen
er zijn nog meer opties voor het verwijderen van bestanden, zodat je directories kunt synchroniseren, zowel voor doel naar source als van source naar doel etc.
ik ga het vanavond afmaken, en dan na de vakantie, als al mijn collegas er ook weer zijn, doe ik ook de lopende projecten,. zodat collegas die nu niet aanwezig zijn dan niet in paniek zullen raken als ik er niet ben;-)

edit:


ik heb net even wat verder gekeken nog, en zag dat de switch /mov inderdaad hetzelfde doet als /rc bij xxcopy..

nou ja.. het werkt, en mag het op het werk nog 59 dagen gebruiken, dan kan ik daarna robocopy wel eens bekijken. ik heb het denk ik al eens op de pc gezet toen ik de resourcefiles er op heb gezet omdat ik cleanspl.exe nodig had ;-)

[ Voor 11% gewijzigd door engelbertus op 13-07-2007 10:01 ]


Acties:
  • 0 Henk 'm!

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

offtopic:
robocopy is gratis, en zit tegenwoordig zelfs standaard in Vista ;)

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device

Pagina: 1