Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

DAS-Komando XCOPY aus VBA

Forumthread: DAS-Komando XCOPY aus VBA

DAS-Komando XCOPY aus VBA
09.06.2004 10:07:25
Rainer
Hallo,
ich suche nach einer Lösung, die mir ein Ergebnis entsprechend des folgenden DOS-Befehls aus VBA heraus bringt:
XCOPY C:\VERZEICHNIS D:\VERZEICHNIS /D /S /F
(Es sollen alle neueren Dateien ohne Rückfrage kopiert werden)
Der VBA-Befehl:
shell "XCOPY C:\VERZEICHNIS D:\VERZEICHNIS /D /S /F"
funktioniert nicht dahingehend, dass er die Optionen /D /S /F berücksichtigt.
Weiss jemand eine Lösung, bzw einen alternativen Weg?
Ergänzende Frage: Kann man 2 Befehle an dieselbe shell abgeben?
Vielen Dank und Gruß
Rainer
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ich meinte natürlich DOS, nicht DAS :-) o.T.
Rainer
.
AW: mit filesystemobject...
Nike
Hi,
so mueste es doch gehn, oder?
FileSystemObject.CopyFile "c:\1.xls", "c:\tmp\"
Bye
Nike
Anzeige
;
Anzeige

Infobox / Tutorial

XCOPY in VBA nutzen: So klappt's


Schritt-für-Schritt-Anleitung

Um den DOS-Befehl XCOPY in VBA zu verwenden, kannst du den folgenden Code verwenden:

Sub ExecuteXCopy()
    Dim source As String
    Dim destination As String
    source = "C:\VERZEICHNIS\*.*"
    destination = "D:\VERZEICHNIS\"

    Shell "CMD.EXE /C XCOPY " & source & " " & destination & " /D /S /F", vbHide
End Sub

Dieser Code nutzt die Shell-Funktion, um das Kommando über die Eingabeaufforderung (CMD) auszuführen. Achte darauf, dass du den Pfad zu den Verzeichnissen entsprechend anpasst.


Häufige Fehler und Lösungen

Problem: Die Optionen /D, /S und /F werden nicht berücksichtigt.
Lösung: Stelle sicher, dass du den Befehl über CMD.EXE /C ausführst, wie im obigen Beispiel gezeigt. Dies ermöglicht die korrekte Ausführung aller Optionen des XCOPY-Befehls.

Problem: Der Befehl wird nicht ausgeführt oder es passiert nichts.
Lösung: Überprüfe die Pfade, um sicherzustellen, dass die Quell- und Zielverzeichnisse korrekt angegeben sind und existieren.


Alternative Methoden

Wenn du eine andere Methode zur Dateiübertragung in VBA verwenden möchtest, kannst du das FileSystemObject nutzen:

Sub CopyUsingFSO()
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")

    fso.CopyFile "C:\VERZEICHNIS\*.*", "D:\VERZEICHNIS\"
End Sub

Diese Methode ist einfacher und erfordert keine DOS-Befehle. Sie kann jedoch nicht die spezifischen xcopy-Optionen wie /D (nur neuere Dateien) nutzen.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du XCOPY in VBA nutzen kannst:

  1. Kopiere alle neuen Dateien:

    Shell "CMD.EXE /C XCOPY C:\Verzeichnis D:\Verzeichnis /D /S", vbHide
  2. Kopiere nur bestimmte Dateitypen:

    Shell "CMD.EXE /C XCOPY C:\Verzeichnis\*.txt D:\Verzeichnis /D /S", vbHide
  3. Kopiere mit Bestätigung:

    Shell "CMD.EXE /C XCOPY C:\Verzeichnis D:\Verzeichnis /S /F", vbHide

Diese Beispiele zeigen, wie flexibel XCOPY in VBA eingesetzt werden kann.


Tipps für Profis

  • Nutze die Option /Y, um die Bestätigungsaufforderung beim Überschreiben von Dateien zu unterdrücken.
  • Probiere, Batch-Dateien zu erstellen, die du dann aus VBA aufrufen kannst, um komplexere Kopieroperationen zu automatisieren.
  • Halte die Pfade und Dateinamen in Variablen, um den Code leichter anpassbar zu machen.

FAQ: Häufige Fragen

1. Kann ich mehrere Befehle in einer Shell-Anweisung ausführen?
Ja, du kannst mehrere Befehle in einer Zeile ausführen, indem du sie mit && oder & trennst.

2. Was passiert, wenn das Zielverzeichnis nicht existiert?
Wenn das Zielverzeichnis nicht existiert, wird XCOPY eine Fehlermeldung ausgeben. Stelle sicher, dass das Zielverzeichnis vorher existiert oder erstelle es programmatisch.

3. Was ist der Unterschied zwischen CopyFile und XCOPY?
CopyFile ist eine einfache Methode, um Dateien zu kopieren, während XCOPY erweiterte Optionen für das Kopieren von Verzeichnissen und Unterverzeichnissen bietet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige