Foto's verplaatsen

Status
Niet open voor verdere reacties.

danny147

Terugkerende gebruiker
Lid geworden
29 apr 2007
Berichten
4.744
Beste ;)

Op mijn werk krijg ik de opdracht, dat alle foto's op de G-schijf moeten verplaatst worden naar de L-schijf met hun bestaande pad.
Met als laatste datum een jaar terug.
Dus alle foto's vanaf 1-1-2003 tem 23-11-2011.

Kan dit met VBA ?

VB. G\Loopkranen\LK100\Hijskabels.jpg
Moet worden L\Loopkranen\LK100\Hijskabels.jpg

Groetjes Danny :thumb:
 
Verplaatsen met VBA zal lastig worden; je kunt alleen verplaatsen naar mappen op dezelfde schijf voor zover ik weet. Je kunt wel een bestand kopieëren naar zijn nieuwe locatie, en dan verwijderen op de oude.
 
Beste OctaFish ;)

Het gaat wel om 5275 foto's die op de G-schijf staan.
In totaal 3 GB.

Dit wordt een zware opdracht als ik dit handmatig moet doen :D

Groetjes Danny. :thumb:
 
Ik heb het uiteraard ook niet over handmatig verplaatsen :) Kopieëren en Verwijderen kun je prima met VBA doen. Vraag is daarbij: zijn de paden allemaal aanwezig, of moeten die ook nog in het proces gemaakt worden? Kan namelijk makkelijk in de hele procedure worden meegenomen.
 
download robocopy. daarmee kun je deze klus prima uitvoeren
 
Of anders met dit scriptje:

Code:
Sub Verplaatsen()
Dim fileSys As Object
Dim MijnBestand, MijnPad

    Set fileSys = CreateObject("Scripting.FileSystemObject")
    
    MijnPad = "G:\Loopkranen\LK100\"   ' Set the path.
    MijnBestand = Dir(MijnPad)
    Do While MijnBestand <> ""    ' Start the loop.
        With fileSys
            If .FileExists(MijnPad & MijnBestand) Then
                .MoveFile MijnPad & MijnBestand, "L:\Loopkranen\LK100\"
            End If
        End With
        MijnBestand = Dir    ' Get next entry.
    Loop

End Sub

Met een kleine aanpassing ook nog wel zodanig te maken dat hij submappen uit kan lezen.... De code maakt gebruik van Late binding, dus je kunt 'm vanuit elke office applicatie (of script) draaien.
 
Waarom moet dat met Vba Danny?

Je kan toch de hoofdmap in één keer van de ene naar de andere schijf verplaatsen via 'Deze Computer' ?

Of schrijf ik nu iets doms?
 
Beste HSV ;)

Het gaat hierom meer dan 5OOO foto's.
In vele supmappen staan ook excel -en Word bestanden en deze mogen niet in de andere mappen zitten.
Enkel de foto's moeten overgeschreven worden.

Via de zoekfunctie bepaal ik alle foto's die op de computer zijn geïnstalleerd.
Het nadeel hiervan is dat je de padnaam niet kan selecteren en plakken op een andere schijf.
Ik moet dus alles handmatig overschrijven.
Is hiervoor geen betere oplossing te vinden ?

Groetjes Danny. :thumb:
 
Beste Huijb ;)

Je ziet dat het zijn nut heeft om dit ook op Excel te plaatsen.
Er is al één reactie opgekomen en 3 personen hebben mij thuis al gemaild :D

Hoe Helpmij.nl werkt dat weet ik ondertussen wel en je ziet dat achterpoortjes van pas kunnen komen.

Ik vind dat alle hulp welkom is en had ook vermeld dat het hier stond, vanwaar die reactie dan ?

Groetjes Danny. :thumb:
 
Wat werkt er niet goed in de code van Octafish Danny.

Misschien met een toevoeging?
Code:
MijnPad = "G:\Loopkranen\LK100\[COLOR="red"]*.jpg[/COLOR]"   ' Set the path.
 
En waarom moet ik in het Excel draadje lezen dat mijn code niet werkt? Wat is dan het probleem?
 
Ik weet/begrijp niet exact de bedoeling, maar ik weet niet of je met SyncBack dit doel kunt bereiken. Je kunt een profiel aanmaken met filters, dan kun je back-uppen en herstellen. Je kunt dan filters instellen opdat die excel en doc(x) bestanden worden uitgesloten. Maar je zult voor de zekerheid tests moeten doen.
 
Beste OctaFish ;)

Het was niet mijn bedoeling jou te ontlopen.
Ik zit veel op de Excel forum en daar wordt er veel met VBA gewerkt.
Na jaren weet je ondertussen wel wie met VBA overweg kan en daarom had ik ook de vraag daar gesteld.
Had hier eerst moeten antwoorden op jouw vraag alvorens op Excel forum te plaatsen :(

Heb de volgende code gebruikt maar deze doet het nog steeds niet.

Wil er iemand van jullie deze code thuis eens uitproberen of deze bij jullie werkende is.

Code:
Sub Verplaatsen()
Dim fileSys As Object
Dim MijnBestand, MijnPad

    Set fileSys = CreateObject("Scripting.FileSystemObject")
    
    MijnPad = "C:\FOTO's OLM\2006\*.jpg"   ' Set the path.
    MijnBestand = Dir(MijnPad)
    Do While MijnBestand <> ""    ' Start the loop.
        With fileSys
            If .FileExists(MijnPad & MijnBestand) Then
                .MoveFile MijnPad & MijnBestand, "D:\FOTO's OLM\2006\*.jpg"
            End If
        End With
        MijnBestand = Dir    ' Get next entry.
    Loop

End Sub

Groetjes Danny. :thumb:
 
Goed nog een keer dan. VBA is leuk, maar

ROBOCOPY G:\ L:\ *.jpg /MOV /MINAGE:365


das al.
 
Beste RogerS ;)

Heb het geprobeerd met de volgende code:

Code:
C:\Windows\system32>ROBOCOPY D:\C:\*.jpg/MOV/MINAGE:365

----------------------------------------------------------------------
   ROBOCOPY     ::  Robuust kopi�ren van Windows-bestanden
----------------------------------------------------------------------

   Gestart: Sat Nov 26 19:24:26 2011

     Bron -
     Doel -

 Bestanden:
               Opties: /COPY:DAT /R:1000000 /W:30

----------------------------------------------------------------------

Fout: ongeldige parameter #1 : 'D:\C:\*.jpg/MOV/MINAGE:365'

 Eenvoudige syntaxis:: ROBOCOPY bron doel /MIR

               bron :: Bronmap (station:\pad of \\server\share\pad).
               doel :: Doelmap (station:\pad of \\server\share\pad).
               /MIR :: Een volledige mapstructuur spiegelen.

    Typ ROBOCOPY /? voor meer informatie over de syntaxis.


****  Met /MIR kunnen bestanden worden VERWIJDERD en gekopieerd.

C:\Windows\system32>Robocopy D:\C:\*.jpg/E/MINAGE:<365>
De syntaxis van de opdracht is onjuist.

C:\Windows\system32>
Heb op de D-schijf een mapje gemaakt "Test" met daarin 1 foto.jpg
Nu wil ik deze als proef eens proberen op mijn computer, maar dit lukt niet.

Heb ook ontdekt dat MOV, alle mappen daarna verwijderd en dat wil ik niet, alleen de foto moet verwijderd worden.
Daarom had ik het ook eens geprobeerd met E/ ipv MOV
Ook dit lukt niet.

Wat doe ik of wat gaat er mis ??

Ben er van overtuigt dat het gaat lukken met jouw voorstel.

Groetjes Danny. :thumb:
 
Als je mappen mee wilt nemen dan gebruik je de combinatie /E /MOV . Lege mappen zouden dan niet verwijderd moeten worden aan de bronkant.


Om te testen voeg je nog /L toe. Dan gebeurt er effectief niks en wordt alleen een lijst gegenereerd. Daarin kun je precies nagaan wat er gebeurt als je het commando voor de echt uitvoert.
 
Met als laatste datum een jaar terug.
Dus alle foto's vanaf 1-1-2003 tem 23-11-2011.

Waarom niet op deze wijze.
Bestanden sorteren op extensie.
.jpg bestanden selecteren , en van de ene locatie naar de andere verslepen.
 
In elke submap opnieuw. En dan ook nog handmatig sorten op datum.

En volgend jaar weer.


Nu even een half uurtje uitzoeken naar de gewenste commando's voor robocopy en je bent er voor altijd vanaf.
 
Beste seniorke ;)

Waarom niet op deze wijze.
Bestanden sorteren op extensie.
.jpg bestanden selecteren , en van de ene locatie naar de andere verslepen.

Hiermee was ik eerst begonnen, maar alles selecteren en plakken dan heb ik enkel alle fotos's maar niet het padbestand, dat ik ook wil hebben.

Dit is de 2de stap nadat ik de code van RogerS heb uitgevoerd als ik alle padnamen met foto's heb gebackupt.

@Rogers

Moet ik dan deze regel ingeven in DOS bestand als test wat hij gaat doen

Code:
C:\Windows\system32>ROBOCOPY G:\L:\*.jpg/E/MOV/L/MINAGE:365
Of moet ik eerst de stationletter wijzigen en moet die Windows\system32 erbij of niet ?

Bij het uitvoeren dan, verwijderd hij de foto niet van het bestaande pad hé ?

Groetjes Danny. :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan