Avatar billede seiffert Nybegynder
13. oktober 2011 - 09:24 Der 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...

håber meget at i kan hjælpe mig :)
Avatar billede ptj_11 Forsker
16. oktober 2011 - 23:03 #1
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
Avatar billede seiffert Nybegynder
31. oktober 2011 - 10:45 #2
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...
Avatar billede seiffert Nybegynder
31. oktober 2011 - 10:46 #3
og ens usb stick får vel heller ikke hele tiden udleveret samme drev bogstav, eller er det bare mig??
Avatar billede ptj_11 Forsker
31. oktober 2011 - 15:04 #4
Å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
Avatar billede seiffert Nybegynder
01. november 2011 - 09:29 #5
tak vil lige prøve :)
Avatar billede nielsrs Nybegynder
07. november 2011 - 09:28 #6
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
Avatar billede seiffert Nybegynder
08. november 2011 - 00:50 #7
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:\

men tak for svaret :)
Avatar billede nielsrs Nybegynder
08. november 2011 - 09:23 #8
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
---------------------
Avatar billede seiffert Nybegynder
08. november 2011 - 11:27 #9
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?? :)
Avatar billede nielsrs Nybegynder
08. november 2011 - 15:05 #10
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.
Avatar billede seiffert Nybegynder
10. november 2011 - 00:13 #11
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?? :)
Avatar billede nielsrs Nybegynder
10. november 2011 - 08:36 #12
Du kan gemme programmet i en .vbs fil og køre den i startup
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester