1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Automatische Ordner erstellen aus *.txt Datei -> Batchprogramm

Dieses Thema im Forum "Sonstige Sprachen" wurde erstellt von JP1, 10. August 2010.

  1. JP1

    JP1 Grünschnabel

    Hallo Leute,

    ich habe nun seit einiger Zeit folgendes Problem:

    Ich möchte mit einem Batchprogramm eine bestimmte Anzahl Ordner auf einem in der Batchdatei definierten Laufwerk erstellen lassen, jedoch die Namen der Ordner soll das Batchprogramm aus einer vorhandenen Text- oder Exceldatei lesen und anschließend erstellen.

    Die Textdatei liegt z.B. in folgendem Format vor:

    Mueller Marcus 2010_11_07
    Tormeyer Lars 2010_11_06
    Loren Denis 2010_11_04

    (kann auch Tab oder Komma getrennt erstellt werden)

    u.s.w.

    Ich habe jetzt schon eine ganze Weile herumexperimentiert und Foren durchsucht komme aber zu keinem
    brauchbaren Ergebnis.Ist einfach schon zu lange her, gute 30 Jahre :(, das ich mich mit Automatisierung beschäftigt hatte.

    Ich krieg´s einfach nicht mehr hin, vielleicht könnt ihr mir helfen.

    Gruß Heiko JP1
     
  2. JP1

    JP1 Grünschnabel

    Ach so,

    bisher mache ich es so, dass ich mir in Excel eine Spalte erzeuge (Verketten) die dann folgendes ausgibt:

    mkdir Mueller_Marcus_20_11_07
    mkdir Tormeyer Lars 2010_11_06
    mkdir Loren Denis 2010_11_04

    diese kopiere ich mir dann in meine Mini Batchdatei und es werden dann die Ordner erstellt.

    echo off
    cls
    :start
    ECHO.
    mkdir Mueller_Marcus_20_11_07
    mkdir Tormeyer Lars 2010_11_06
    mkdir Loren Denis 2010_11_04
    :end

    Ist aber immer ganz schön umständlich und Leerzeichen und Umlaute kann ich auch nicht erzeugen.

    Gruß Heiko JP1
     
  3. deepthroat

    deepthroat Erfahrenes Mitglied

    Hi.

    Siehe "help for".

    Mit for /F kann man Dateien zeilenweise verarbeiten und an Trennzeichen aufspalten.

    Um Umlaute zu erstellen, aus einer Datei die im ANSI Zeichensatz 1252 gespeichert ist, schalte den Zeichensatz der Konsole auf 1252 in der Batch Datei um:
    Code (Text):
    1. chcp 1252
    \edit: Man kann den aktuellen ANSI Zeichensatz auch aus der Registry auslesen, falls das Skript auf anderen Rechnern laufen soll, siehe http://www.tutorials.de/sonstige-sp...en-koenntet-ihr-mir-helfen-2.html#post1889539

    Gruß
     
    Zuletzt bearbeitet: 11. August 2010
  4. JP1

    JP1 Grünschnabel

    Danke, einen kleinen Schritt bin ich nun weiter:

    - Die Umlaute werden Dank "chsp 1252" nun mit erstellt
    - ich habe folgendes in die Batch geschrieben:

    echo off
    cls
    chcp 1252
    :start
    FOR /F %%G IN (list.txt) DO @mkdir %%G

    - das Batchprogramm liest nun die "list.txt" ein und erstellt die Ordner - ABER ! leider liest das Programm die erste Zeile in meiner Textdatei und springt nach dem ersten gelesen Leerzeichen in die zweite Zeile.

    Somit werden nur die Ordner "Hans" "Peter" und "Torsten" erstellt und nicht wie gewünscht

    Hans Beispiel 20.11.1980
    Peter Sample 11.01.1974
    Torsten Hpunkt 04.04.1986

    Gibt es dafür noch eine Lösung?

    Viele Grüße
    Heiko JP1
     
  5. deepthroat

    deepthroat Erfahrenes Mitglied

    Ja, lies einfach die Hilfe "help for".

    Und es gibt auch so eine neumodische Erfindung namens "Suchmaschine" :eek: ;)

    Gruß
     
  6. JP1

    JP1 Grünschnabel

    Naja, es hätte ja sein können das man in einem Fachforum Antworten auf gestellte Fragen bekommt. Zimindest ist dies in den Foren meiner Berufsgruppe so!Es tut mir sehr leid, aber man kann sich nicht mit allen Dingen dieser Welt beschäftigen und ich bin nun mal kein Programierer.

    Ich hätte hier nur etwas mehr Unterstützung erwartet.

    Ich beschäftige mich damit numehr seit einer Woche und habe aber keine Zeit dafür mich stundenlang in Programiersprachen einzulesen. Suchmaschinen habe ich bereits sehr intensiv befragt und bin jedoch zu keiner Lösung gekommen, genaus wie "help for" auf der Komandozeilenebene bringt für mich nur bömiche Dörfer. Nach stundenlangen herumexperimentieren mit Optionen und Variabeln habe ich einfach die Nase voll.
     
  7. deepthroat

    deepthroat Erfahrenes Mitglied

    Hi.
    Du hast offenbar das Konzept von tutorials.de nicht verstanden. Erstens hilft hier jeder freiwillig und kostenlos. Zweitens wird davon ausgegangen, dass man etwas lernen möchte und dazu etwas Eigeninitiative mitbringt.
    Sorry, aber was ist so schwierig die Hilfe zu lesen? Es handelt sich nicht mal um 100 Zeilen mit Beispielen. Wenn da irgendwas unklar ist, dann kann man ja fragen...

    Außerdem finde ich meine Unterstützung ziemlich fair.
    Wonach hast du denn gesucht? Der erste Treffer von :)google: "batch for komplette zeile lesen") ist sogar ein Thema hier auf tutorials.de.

    Gruß
     
  8. sheel

    sheel I love Asm Administrator

    Ist "Sonstige Sprachen" auf Batch spezialisiert?

    Jede Hilfestellung in diesem (und den meisten anderen) Internetforum ist auf freiwilliger Basis.
    Man kann nicht verlangen, dass einem Andere die gesamte Arbeit abnehmen.

    Ohne Eigeninitiative geht nichts, und Programmieren lernt man eben nicht von heute auf morgen.

    Was ist an "help for" unverständlich?
    Es ist zwar nicht kurz, aber (meiner Meinung nach) gut verständlich und mit vielen Anwendungsbeispielen ausgeschmückt.

    Es wird sogar mit Beispiel erklärt, was "case-sensitiv" bedeutet.
    Ich weiß zwar nicht, welche Windowsversion du verwendest, aber der Hilfetext wird ziemlich gleich geblieben sein.



    edit: zu spät :)
     
    deepthroat gefällt das.
  9. JP1

    JP1 Grünschnabel

    Generell gesehen habt ihr ja recht, nur ich bin es aus der Fotografenbranche gewohnt, das man direkt und ohne Rätsel oder Schnitzeljagt geholfen bekommt. Das mag aber, genau wie bei euch, daran liegen, das die Kollegen wissen von was sie sprechen.
    Das wiederum ist in meinem Fall nicht so!

    Ich habe es mittlerweile nun doch noch selbst gelöst, wobei ich mir nicht sicher bin ob dies der richtige Weg ist und was da im Hintergrund noch so alles passiert.

    echo off
    cls
    chcp 1252
    :start
    FOR /F "usebackq tokens=* delims=;" %%G IN (list.txt) DO @mkdir "%%G"
    :end

    Resultat:

    Hans Beispiel 20.11.1980
    Peter Sample 11.01.1974
    Torsten Hpunkt 04.04.1986

    Vielen Dank für die Anregungen und Hilfe

    Viele Grüße
    Heiko JP1
     
  10. udg

    udg Grünschnabel

    für die Suchmaschine:

    um den Beitrag zu vervollständigen. Ich habe über die Feiertage 2016/ 2017 ein Tool programmiert, wo Batch unnötig ist.
    Download hier:
    http://www.inc-games-design.de/Tools/Files2Folder.rar

    Infos gibst hier:

    ScanDirectory To TextFile v2 | unknown design group 2016

    Folder2Txt liest den Inhalt eines Ordners ein und dessen untergeordnete Dateien werden dann
    in eine info.txt Datei gespeichert

    Code: udg aka inc
    UI: udg aka inc

    =================================================================================================

    Im oberen Auswahlfeld “ folgende Dateitypen auslassen:“

    können mit klicken einer oder mehrere Checkboxen spezifische Endungen von der Suche ausgeklammert werden, die dann nicht in der info.txt Datei aufgelistet sind.

    Im Eingabefeld Custom „Endung trennen mit ;“

    können zusätzlich mehrere Dateiendungen eingegeben werden, die bei der Suche nicht berücksichtigt werden sollen um nicht in der Textdatei zu erscheinen.

    Endungen sind zu trennen mit einem Semikolon ;

    Beispiel:

    xml;doc;cdr

    Beispielinhalt eine gespeicherten TxT Datei:

    C:\Users\User\Desktop\Ordner\Beispiel1.txt
    C:\Users\User\Desktop\Ordner\Beispiel2.txt
    C:\Users\User\Desktop\Ordner\Beispiel3.txt
    C:\Users\User\Desktop\Ordner\Beispiel1.avi
    C:\Users\User\Desktop\Ordner\Beispiel1.exe

    ================================================================================================

    Im unteren Auswahlfeld “ nur diese Dateitypen einlesen:“

    können mit klicken einer oder mehrere Checkboxen spezifische Endungen durch die Suche in eine Textdatei gespeichert werden, die dann in der info.txt Datei sind.

    Dies macht es besonders einfach bestimmte Dateien zu suchen, um Informationen über dessen
    Speicherort zu erhalten.

    Im Eingabefeld Custom „Endung trennen mit ;“

    können zusätzlich mehrere Dateiendungen eingegeben werden, die bei der Suche auch berücksichtigt werden sollen um in der Textdatei zu erscheinen.

    Endungen sind zu trennen mit einem Semikolon ;

    Beispiel:

    wav;mp4;cdr

    Beispiel Inhalt eine gespeicherten TxT Datei:

    C:\Users\User\Desktop\Ordner\Beispiel1.wav
    C:\Users\User\Desktop\Ordner\Beispiel2.wav
    C:\Users\User\Desktop\Ordner\Beispiel3.wav
    C:\Users\User\Desktop\Ordner\Beispiel1.mp4
    C:\Users\User\Desktop\Ordner\Beispiel1.cdr
     
Die Seite wird geladen...