13. oktober 2011 - 09:24Der er
11 kommentarer og 1 løsning
vbscript til at kopiere filer automatisk
Hej jeg er i gang med et lille projekt hvor man skal kunne stikke eksempelvis en usb stick i sin computer og så kopiere den ens filer i enten en bestemt mappe eller visse filtyper, men har brug for hjælp til at starte...
Et forslag: Xcopy X:*.* C:\Mappe i en bat fil, som aktiveres gennem autorunfunktionen, hver gang du indsætter din USB stick. Xcopy X:\ angiver dit drevbogstav for din USB stick. /ptj_11
hvad hvis den computer ikke har et c-drev men er omdøbt til noget andet?? og jeg vil jo ikke have unødvendige windows filer osv, vil bare have billeder, videoer, tekst og lyd-filer...
og må ærlig indrømme at jeg ikke kender så mega meget til bat filer...
Åbn Noteped/Notesblok og kopier et af nedenstående eksempler ind i vinduet. Tilret det så det passer til din verden og gem filen med filtypen "Alle Filer" og giv den efternavnet "Bat" eller "Cmd". Så vil du have en batfil. Hvis dit C-drev hedder f.eks. D, så skifter du bare C ud med D.
Hvis jeg husker ret, så skal du sørge for, at der ligger en kopi af filen Xcopy.exe i samme mappe som du har gemt din batfil i.
Eksempel 1: Xcopy C:\Billeder\*.* K:\Billeder Eksempel 2: Xcopy J:\Billeder\*.jpg K:\Billeder
Dit USB stik vil normalt altid forsøge at tage den samme drevbetegnelse hver gang du sætter den i din maskine. Sætter du den derimod i en anden maskine, så vil sticken forsøge at tage den samme drevbetegnelse, og hvis dette drev allerede er optaget, så skal du omkring diskhåndtering for at omdøbe din stick, ellers kan du ikke se den. Hvis du har brug for mere hjælp, så kommer du bare igen. /ptj_11
Jeg har et script der kopierer ændrede filer. Det medtager alle filer og undermapper (også filer i undermapper) o.s.v.
option explicit
dim onet, bnr, fso set oNet = WScript.CreateObject("WScript.Network") bnr = oNet.UserName Const ForReading = 1, ForWriting = 2, ForAppending = 8 Set fso = CreateObject ("Scripting.FileSystemObject") Call flytalt_() msgbox"færdig"
'Kommentarer: 'Flytter mapper og filer i hovedmappen ---- virker OK 'næste trin
Sub flytalt_()
Dim fra, sti_fra, sti_til, til, gettil, hovedsti, tilmappe, aa
sti_fra = InputBox("Sti og navn til mappen der overflyttes fra",,"H:\documents\aarbejdsmappe") aa = split(sti_fra,"\") sti_til = InputBox("Sti til mappen der overflyttes", aa(UBound(aa)), "C:\test\sikkopi\") If fso.FolderExists(sti_til & f2.name) Then Else fso.createFolder(sti_til & f2.name) end If 'msgbox"1" ' Call filflyt_(f, sti_til) 'msgbox"ud1" ' Do Call folderholder_(sti_fra, sti_til)
End Sub
Sub folderholder_(sti_fra, sti_til) Dim fo, f2, f Set f = fso.GetFolder(sti_fra) Call filflyt_(f, sti_til) Set fo = f.subfolders For Each f2 in fo If fso.FolderExists(sti_til & f2.name) Then Else fso.createFolder(sti_til & f2.name) end If Call folderholder_(sti_fra & "\" & f2.name, sti_til & f2.name & "\") ' Call filflyt_(f2, sti_til & f2.name & "\") next End Sub
Sub filflyt_(f, sti_til) Dim fc, f1, fra, til, gettil Set fc = f.files For Each f1 in fc Set fra = fso.getFile(f1.path) til = sti_til & f1.name If fso.FileExists(til) Then Set gettil = fso.getFile(til)
If gettil.datelastmodified <> fra.datelastmodified Then 'MsgBox(til) fra.copy til Else End If Else 'MsgBox(til) fra.copy til End If Next End Sub
det lyder udemærket nielsrs, men søger ikke noget der kopiere filer som er ændret, men bare alle filer feks. af jpeg, docx i alle mapper, undermapper osv, eksempelvis fra c:\
Såfrem du ved hvilke type filer der skal overføres ændrer du -------------------------- If gettil.datelastmodified <> fra.datelastmodified Then 'MsgBox(til) fra.copy til Else End If ---------------------
til
--------------------- select case right(fra.name,4) '***her skriver du de sidste 4 positioner i filnavn '***der skal overføres case "jpeg", "docx", ".doc fra.copy til case else end select ---------------------
okay, og så vil den kopierer filer som har eksempelvis jpeg, docx og det uden jeg behøver kører noget, altså så den går i gang så snart jeg sætter usb'en eller den eksterne harddisk ind i stikket?? :)
Du har fået programmet, hvordan du så starter det er noget helt andet :-)
Jeg starter et sådant program manuelt, ved klik eller genvejstast, evt. ved at lægge det ind i STARTUP, så den starter ved logon på pc
Om du kan få det til at starte ved at tilslutte en hard disk eller usb ved jeg ikke. En løsning var at sætte programmet i loop indtil den finder bestemt mappe, det skal nok være et loop med pauser (Wscript.Sleep x000, hvor x er antal sekunder) eller vil du belaste din pc for meget. Det vil så også kun køre 1 gang (indtil du starter det igen), men det er måske også det du ønsker.
okay, men så kan man godt lægge en autostart fil og trykke på den og så søger den efter de filer som jeg vil have og så kopiere dem til min usb eller eksterne harddisk?? :)
Du kan gemme programmet i en .vbs fil og køre den i startup
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.