Spirax Skrevet 3. september 2008 Del Skrevet 3. september 2008 (endret) Hei ! Prøver å lage et script som arkiverer filer i forskjellige mapper. Problemstilling: Har en mappe med mange filer i som trenger å sorteres i riktig mappe med mappe navn. Det jeg vil scriptet skal gjøre er å hente ut når dokumentet ble opprettet å legge det inn i en ny mappe som han oppretter selv med dato på fra når filen ble laget. så vis det er 1000 filer der skal alle legges i riktig mappe med dato når det ble laget. har kommet så langt selv: @echo off title copy mkdir %date% move *.txt %date% pause Dette er sikkert helt feil, for jeg er veldig ny innen dette, men det jeg mangler er at den henter ut datoen på filene når de ble laget. Noen som kan hjelp? Endret 3. september 2008 av Spirax Lenke til kommentar
geir__hk Skrevet 3. september 2008 Del Skrevet 3. september 2008 Hei. Jeg tviler på at du kan klare det med vanlig bat-fil. Til det bruket så er det mye bedre å lage en vbs-fil, fordi en vbs-fil kan enkelt traversere gjennom en filmappe og finne diverse info om disse filene. Lenke til kommentar
Spirax Skrevet 4. september 2008 Forfatter Del Skrevet 4. september 2008 oki, hadde egentlig regnet med at jeg måtte over på VBscripting. noen som har noen forslag til hvordan det kan gjøres skal prøve å lese meg litt opp på det men er veldig ny innen programering. Lenke til kommentar
kakkle Skrevet 7. september 2008 Del Skrevet 7. september 2008 (endret) Her er et lite script som gjør dette: Dim objFso, strDir, strDestDir, objDir, File Set objFso = CreateObject("scripting.filesystemobject") ' strDir - Dette er mappen som inneholder filene som skal sjekkes strDir = "C:\Temp" ' strDestDir - Dette er rotmappen, der "datomappene" skal opprettes strDestDir = "C:\Temp" Set objDir = objFso.GetFolder (strDir) For Each File In objDir.Files arrDateCreated = Split (File.DateCreated, " ") ' dato og klokkeslett skilles av et mellomrom strDateCreated = arrDateCreated(0) ' Vil kun ha dato ikke klslett strMoveToDir = strDestDir & "\" & strDateCreated ' Sjekk om mappen finnes, hvis ikke - opprett den If Not objFso.FolderExists (strMoveToDir) Then objFso.CreateFolder strMoveToDir End If ' Flytt filen til mappen File.Move strMoveToDir & "\" Next Dette scriptet sjekker alle filene i en gitt mappe (strDir), og flytter dem til en nye mappe som er datoen for da de ble opprettet. Scriptet tar kun for seg filene i den gitte mappen, og ikke eventuelle undermapper. Men det er ikke mye endring som må til for at det skal kjøres på undermapper også... Endret 7. september 2008 av kakkle Lenke til kommentar
Spirax Skrevet 8. september 2008 Forfatter Del Skrevet 8. september 2008 Takk, var akkurat dette jeg trengte Lenke til kommentar
Spirax Skrevet 8. september 2008 Forfatter Del Skrevet 8. september 2008 en liten ting, er det mulig å endre sånn at den sorterer etter måned og år istedenfor alle dager ? Gammel: 08.09.2008 skal bli 09.2008 osv er dette mye vanskeligere å få til? Lenke til kommentar
geir__hk Skrevet 8. september 2008 Del Skrevet 8. september 2008 en liten ting, er det mulig å endre sånn at den sorterer etter måned og år istedenfor alle dager ? Gammel: 08.09.2008 skal bli 09.2008 osv er dette mye vanskeligere å få til? Du endrer: strMoveToDir = strDestDir & "\" & strDateCreated til: strMoveToDir = strDestDir & "\" & Mid(strDateCreated, 3) Eventuelt mulig du må konvertere dato til tekst (string): strMoveToDir = strDestDir & "\" & Mid(CStr(strDateCreated), 3) Alternativr kan du bruke dato-objektet direkte. Samling av funksjoner og forklaring av disse finner du bl.a her Lenke til kommentar
Spirax Skrevet 8. september 2008 Forfatter Del Skrevet 8. september 2008 takk, da trur jeg at jeg har fått det jeg trenger Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå