Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Batch Datei erstellen und beschreiben aus excel tabelle

Forumthread: Batch Datei erstellen und beschreiben aus excel tabelle

Batch Datei erstellen und beschreiben aus excel tabelle
23.11.2023 12:20:02
Giuppy
Hallo,

ich möchte mehrere bat Datei mit vba in der Ordner C:\#KDFatture\MAIL_NEW\Batch erstellen
Die Daten sollen dinamisch aus Excel genommen werden.
Zuerst soll ein Bat Datei erstellen mit Name aus Excel Spalte E und den inhalt sollte für jede Datei angepasst werden

z.B.
Datei Name = SchoopCF.bat aus Spalte E
Inhalt

@@echo off && title %~n0 && color 70

for /f "delims=" %%i in (C:\#KDFatture\MAIL_NEW\Dateien\schoopDat.txt) do xcopy "C:\#KDFatture\Kunden\KopieCaopti06\%%i*.pdf" "C:\#KDFatture\MAIL_NEW\PDF\Schoop_PDF"



den Wert schoopDat.txt aus Excel Spalte A und der Wert Schoop_PDF soll aus die Tabelle Dat Spalte C

https://www.herber.de/bbs/user/164531.xlsx



Kann mir jemand helfen

Vielen Dank
Giuppy
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Batch Datei erstellen und beschreiben aus excel tabelle
23.11.2023 14:59:05
Uduuh
Hallo,
teste mal:
Sub BAT_erstellen()

Dim lRow As Long, S2 As String
Const strPath As String = " C:\#KDFatture\MAIL_NEW\Batch\"
Const txt1 As String = "@@echo off && title %~n0 && color 70"
Const txt2 As String = "for /f ""delims="" %%i in (C:\#KDFatture\MAIL_NEW\Dateien\#.txt) do xcopy ""C:\#KDFatture\Kunden\KopieCaopti06\%%i*.pdf"" ""C:\#KDFatture\MAIL_NEW\PDF\#_PDF"""
For lRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row
S2 = Replace(txt2, "#.txt", Cells(lRow, 1))
S2 = Replace(S2, "#_PDF", Cells(lRow, 3))

Open strPath & Cells(lRow, 5) For Output As #1
Print #1, txt1
Print #1, S2
Close #1

Next lRow
End Sub

Gruß aus'm Pott
Udo
Anzeige
Batch Datei erstellen und beschreiben aus excel tabelle
24.11.2023 11:10:33
giuppy
Hallo Udo,
Vielen Dank
leider funktioniert nicht
bleibt hängen bei Open strPath & Cells(lRow, 5) For Output As #1
Was ist for Output As#1?

Es sollte zuerst ein bat datei erstellt und dann den text geschrieben sein

Const txt1 As String = "@@echo off && title %~n0 && color 70"
Const txt2 As String = "for /f ""delims="" %%i in (C:\#KDFatture\MAIL_NEW\Dateien\#.txt) do xcopy ""C:\#KDFatture\Kunden\KopieCaopti06\%%i*.pdf"" ""C:\#KDFatture\MAIL_NEW\PDF\#_PDF"""

Viele Grüße
Giuppy
Anzeige
AW: Batch Datei erstellen und beschreiben aus excel tabelle
24.11.2023 22:45:23
Uduuh
Hallo,
versuchs mal ohne das Leerzeichen vor C:\
Const strPath As String = "C:\#KDFatture\MAIL_NEW\Batch\"

Gruß aus'm Pott
Udo
Anzeige

Infobox / Tutorial

Batch Datei erstellen und beschreiben aus Excel-Tabelle


Schritt-für-Schritt-Anleitung

Um eine Batch-Datei (bat-Datei) aus einer Excel-Tabelle zu erstellen, kannst Du den folgenden VBA-Code verwenden. Dieser Code generiert mehrere Batch-Dateien, basierend auf den Werten in Deiner Excel-Tabelle.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul ein: Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsx)“ > Einfügen > Modul.

  3. Kopiere den folgenden Code und füge ihn in das Modul ein:

    Sub BAT_erstellen()
        Dim lRow As Long, S2 As String
        Const strPath As String = "C:\#KDFatture\MAIL_NEW\Batch\"
        Const txt1 As String = "@@echo off && title %~n0 && color 70"
        Const txt2 As String = "for /f ""delims="" %%i in (C:\#KDFatture\MAIL_NEW\Dateien\#.txt) do xcopy ""C:\#KDFatture\Kunden\KopieCaopti06\%%i*.pdf""  ""C:\#KDFatture\MAIL_NEW\PDF\#_PDF"""
    
        For lRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row
            S2 = Replace(txt2, "#.txt", Cells(lRow, 1))
            S2 = Replace(S2, "#_PDF", Cells(lRow, 3))
    
            Open strPath & Cells(lRow, 5) For Output As #1
                Print #1, txt1
                Print #1, S2
            Close #1
        Next lRow
    End Sub
  4. Passe den Code an, um die korrekten Pfade und Spalten zu verwenden, die Du in Deiner Tabelle hast.

  5. Führe das Skript aus: Drücke F5 oder gehe zu Ausführen > Sub/UserForm ausführen.

Dieser Code erstellt eine Batch-Datei für jede Zeile in Deiner Excel-Tabelle, indem er die Namen und Inhalte aus den angegebenen Spalten verwendet.


Häufige Fehler und Lösungen

  • Fehler: "Konnte Datei nicht öffnen"
    Überprüfe, ob der Pfad C:\#KDFatture\MAIL_NEW\Batch\ korrekt ist und die entsprechenden Berechtigungen zum Schreiben bestehen.

  • Fehler: Hängt bei Open strPath & Cells(lRow, 5)
    Achte darauf, dass kein Leerzeichen im Pfad ist. Ändere Const strPath As String = " C:\#KDFatture\MAIL_NEW\Batch\" zu Const strPath As String = "C:\#KDFatture\MAIL_NEW\Batch\".


Alternative Methoden

Wenn Du keine VBA verwenden möchtest, kannst Du auch manuell eine Batch-Datei erstellen:

  1. Öffne den Editor.
  2. Schreibe den Batch-Befehl.
  3. Speichere die Datei mit der Endung .bat.

Diese Methode ist jedoch weniger dynamisch, da Du die Werte manuell eingeben musst.


Praktische Beispiele

  1. Beispiel für eine Batch-Datei:

    @@echo off
    title Mein Batch-Skript
    color 70
    for /f "delims=" %%i in (C:\#KDFatture\MAIL_NEW\Dateien\meineDatei.txt) do xcopy "C:\#KDFatture\Kunden\KopieCaopti06\%%i*.pdf" "C:\#KDFatture\MAIL_NEW\PDF\Meine_PDF"

    Diese Batch-Datei kopiert PDF-Dateien basierend auf den Einträgen in meineDatei.txt.


Tipps für Profis

  • Nutze Kommentare in Deinen Batch-Dateien, um die Lesbarkeit zu verbessern. Füge REM Kommentar hinzu, um Notizen zu hinterlassen.
  • Verwende Variablen in Deinen Batch-Dateien, um die Flexibilität zu erhöhen.

FAQ: Häufige Fragen

1. Wie erstelle ich eine Batch-Datei aus Excel?
Du kannst eine Batch-Datei erstellen, indem Du VBA in Excel verwendest, um die erforderlichen Befehle dynamisch zu generieren.

2. Was ist der Unterschied zwischen einer Batch-Datei und einer VBA-Datei?
Eine Batch-Datei führt systembezogene Befehle aus, während VBA in Excel verwendet wird, um automatisierte Aufgaben innerhalb der Excel-Anwendung zu erstellen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige