'xcopy' in bat-bestandje schrijven met VBA

Status
Niet open voor verdere reacties.

GeertN

Gebruiker
Lid geworden
24 okt 2006
Berichten
9
Jarenlang maak ik al gebruik van een batchprogrammaatje om met behulp van het DOS-commando “xcopy Bronmap:\*.* I:\Doelmap /C /D /E /M” kopieën van alle bestanden en submappen van de bronmap naar de doelmap te maken. (/C /D /E /M = alleen nieuwe en nieuwere bestanden kopiëren cq. overschrijven en eventuele nieuwe submappen nieuw aanmaken in de doelmap)
Hiervoor gebruik ik een VBA procedure die ik in Excel gemaakt heb mbv het Open, Writeline en het Close commando. Nu ontstaat echter het probleem dat wanneer men in de naam van de doelmap spaties gaat gebruiken deze schrijfprocedure via VBA niet meer gaat omdat dan de mapnaam tussen aanhalingstekens geplaatst moet worden en ik niet weet hoe ik die via VBA achter de Writeline-opdracht zou moeten schrijven.

Voorbeeld:
Bronmap = "C:\Mijn Documenten"
Doelmap= "X:\Documenten Henk"
...........
WriteLine ("xcopy " & MapVan & " " & MapNaar & " " & "/C /D /E /M" )
...........

Dit resulteert in het Bat-bestand dus in:
C:\Mijn Documenten X:\Documenten Henk /C /D /E /M

Wat moet ik doen om het onderstaande daarin te krijgen.
C:\”Mijn Documenten” X:\”Documenten Henk” /C /D /E /M

Of is er misschien een slimmere oplossing?

bij voorbaat dank voor hulp of suggesties
 
C:\MijnD~1 X:\Docume~1 /C /D /E /M

De 1 van docume~..... kan afwijken, wanneer er meer usermappen in X:\ staan, maar dit is dmv een 'doscommando' snel te achterhalen
 
C:\MijnD~1 X:\Docume~1 /C /D /E /M

De 1 van docume~..... kan afwijken, wanneer er meer usermappen in X:\ staan, maar dit is dmv een 'doscommando' snel te achterhalen

Jammer genoeg is dit voor mij niet de oplossing.
Het gaat er bij mij om dat ik op de bronlocatie meerdere mappen heb waar er ook regelmatig nieuwe bij komen met de zelfde naamsopbouw. bv. "OrdersClnt 27493", "OrdersClnt 15869", "OrdersClnt 74839", "Fact 077747",, "Fact 075876", enz.
Deze nieuwe mappen moeten dus opnieuw aangemaakt worden door xcopy op de doellocatie.
Wat nu??? :confused:
 
In VBS zet ik altijd de ascii waarde voor het aanhalingteken erbij (34) en dan werkt het. Dus
Bronmap = chr(34)&"C:\Mijn Documenten"& chr(34)

Ik weet niet of de code hetzelfde is voor VBA maar het principe zou wel moeten werken
 
In VBS zet ik altijd de ascii waarde voor het aanhalingteken erbij (34) en dan werkt het. Dus
Bronmap = chr(34)&"C:\Mijn Documenten"& chr(34)
Ik weet niet of de code hetzelfde is voor VBA maar het principe zou wel moeten werken
Yep, dat werkt. Wat ook werkt is dit:
Code:
WriteLine ("xcopy """ & MapVan & """ """ & MapNaar & """ " & "/C /D /E /M")
Ziet et wel leuk uit met drie quotes...
 
Beide heren bedankt.
Oplossingen werken perfect.
Groet,
Geert
:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan