Ergebnis 1 bis 15 von 15

Thema: Ordner nach Dateinamen erstellen

  1. #1
    Boardgrufti Avatar von The Don
    Registriert
    Mar 2015
    Beiträge
    904
    Gefällt mir!
    1,120
    Du gefällst: 683

    Ordner nach Dateinamen erstellen

    Seit heute Morgen bin ich auf der Suche nach eine Batch, die mir anhand des Dateinamens, ein Ordner erstellt und die passende Datei da rein verschiebt.
    Aber alle die ich gefunden hab, funktionieren leider nicht.

    Zitat Zitat von Kurt Cobain
    You're laughing at me because I'm different? I'm laughing at you because you're all the same!

  2. Werbung - Hier werben?
  3. #2
    VIP Team Avatar von Unlimiter
    Registriert
    Mar 2015
    Beiträge
    728
    Gefällt mir!
    125
    Du gefällst: 632
    Ich kann dir eben ein kleines Bat-File zusenden, was das machen sollte was du möchtest. Kann natürlich auch sauber angepasst werden.
    Geändert von Unlimiter (04.04.2015 um 14:45 Uhr) Grund: RS-Fehlerkorrektur

  4. Diesen Mitgliedern gefällt dieser Beitrag:


  5. #3
    Avatar von syrius
    Registriert
    Mar 2015
    Beiträge
    2,124
    Gefällt mir!
    1,233
    Du gefällst: 2,816
    Hi,

    damit das funktioniert muss die Variable HOMEDIR korrekt gefüllt werden. Es muss das genau Verzeichnis gesetzt werden in dem sich der zu sortierende Inhalt befindet MIT abschließendem SLASH!!

    Code:
    set HOMEDIR="D:\devtest_batch\"
    For /f "Tokens=*" %%i IN ('Dir /B /S %HOMEDIR%*.*') do (
        md "%HOMEDIR%%%~ni"
        move "%%~i" "%HOMEDIR%%%~ni"
    )
    Grüße
    Angehängte Dateien Angehängte Dateien
    SzeneBox.org bei Telegram https://t.me/szenebox

  6. Diesen Mitgliedern gefällt dieser Beitrag:


  7. #4
    Boardgrufti
    THEMENSTARTER

    Avatar von The Don
    Registriert
    Mar 2015
    Beiträge
    904
    Gefällt mir!
    1,120
    Du gefällst: 683
    Ich hab eine gfunden die auch geht:
    Code:
    @echo off
    
    rem rekursiver Aufruf? (1.Parameter == /R)
    if %1.==/R. goto rekursiv
    
    
    rem ein Prameter vorhanden?
    if %1.==. goto no_params
    set src=%1
    :param_
    
    rem erster Prameter sollte der Ordner sein, wo's abgeht
    if not exist %src%\* goto err_param
    
    
    rem und nun für jede Datei innerhalb des Quellordners ...
    rem dabei ist:
    rem '%%i' die "For"-Variable
    rem '%0' ist das script selbst
    rem 1 '/R' die Markierung für den rekursiven Aufruf
    rem 2 '%src%' der Quellordner
    rem 3 '%%~fi' Laufwerk+Pfad+Name+Erweiterung der Datei
    rem 4 '%%~dpsi' Laufwerk+Pfad+Name+Erweiterung als '8.3'
    for %%i in (%src%\*.*) do call %0 /R "%src%" "%%~fi" %%~si
    goto end_batch
    
    
    rem --------------------------------------------------
    
    :rekursiv
    rem bin ich's selbst??? Ooops!
    if %3.==%0. goto exit_batch
    
    rem check %3 (Datei)
    if not exist %3 goto err_R_Datei
    
    rem "falschen" Ordner erstellen ...
    if exist %4__\* goto err_R_Dummy
    md %4__
    rem ... Datei verschieben ...
    move %3 %4__ >Nul
    rem ... und "falschen" Ordner korrigieren...
    move %4__ %3
    
    goto exit_batch
    
    
    rem --------------------------------------------------
    
    :no_params
    echo.
    echo. kein Ordner angegeben...
    echo. verwende aktuellen Ordner
    set src=.
    rem ... und Rücksprung
    goto param_
    rem echo. [Abbruch]
    rem echo.
    rem goto end_batch
    
    
    :err_param
    echo.
    echo. Ordner "%1" scheint nicht zu existieren, kein Zugriff oder nix drin!
    echo. [Abbruch]
    echo.
    goto end_batch
    
    :err_R_Datei
    echo. Kein Zugriff auf oder Datei "%3" existiert nicht!
    echo. [skip...]
    goto exit_batch
    
    :err_R_Dummy
    echo. Dummer Zufall...
    echo. Dummy-Ordner "%4__" existiert bereits!
    echo. [skip...]
    goto exit_batch
    
    
    rem --------------------------------------------------
    
    :end_batch
    rem falls noch irgendetwas zu sagen ist...
    pause
    
    :exit_batch
    Allerdings erstellt das Teil Ordner ala "Video.avi" oder "Clip.flv"
    Und bei Sonderzeichen ala & % im Namen streickt es.

    Zitat Zitat von Kurt Cobain
    You're laughing at me because I'm different? I'm laughing at you because you're all the same!

  8. #5
    VIP Team Avatar von Unlimiter
    Registriert
    Mar 2015
    Beiträge
    728
    Gefällt mir!
    125
    Du gefällst: 632
    %~ni => nötig, damit die Extension weggelassen wird

    i=Variable;

    Frohe Ostern!

  9. Diesen Mitgliedern gefällt dieser Beitrag:


  10. #6
    Boardgrufti
    THEMENSTARTER

    Avatar von The Don
    Registriert
    Mar 2015
    Beiträge
    904
    Gefällt mir!
    1,120
    Du gefällst: 683
    Ja nun musst du mir noch sagen, wohin damit ^^

    Zitat Zitat von Kurt Cobain
    You're laughing at me because I'm different? I'm laughing at you because you're all the same!

  11. #7
    VIP Team Avatar von Unlimiter
    Registriert
    Mar 2015
    Beiträge
    728
    Gefällt mir!
    125
    Du gefällst: 632
    Ich würde es so machen:

    ** Hatte sich ein Fehler reingeschlichen. ** Zwar war der Name des Ordners korrekt, aber Dateien mit selben Namen wurden in Subfolder verschoben.

    - - - - - - - - - - Beitrag nachträglich erweitert - - - - - - - - - -

    Auch mit Leerzeichen im Namen (Quotes und so) - Läuft richtig

    Code:
    @echo off
    
    rem rekursiver Aufruf? (1.Parameter == /R)
    if %1.==/R. goto rekursiv
    
    
    rem ein Prameter vorhanden?
    if %1.==. goto no_params
    set src=%1
    :param_
    
    rem erster Prameter sollte der Ordner sein, wo's abgeht
    if not exist %src%\* goto err_param
    
    
    rem und nun für jede Datei innerhalb des Quellordners ...
    rem dabei ist:
    rem '%%i' die "For"-Variable
    rem '%0' ist das script selbst
    rem 1 '/R' die Markierung für den rekursiven Aufruf
    rem 2 '%src%' der Quellordner
    rem 3 '%%~fi' Laufwerk+Pfad+Name+Erweiterung der Datei
    rem 4 '%%~dpsi' Laufwerk+Pfad+Name+Erweiterung als '8.3'
    for %%i in (%src%\*.*) do call %0 /R "%src%" "%%~fi" %%~si
    goto end_batch
    
    
    rem --------------------------------------------------
    
    :rekursiv
    rem bin ich's selbst??? Ooops!
    if %3.==%0. goto exit_batch
    
    rem check %3 (Datei)
    if not exist %3 goto err_R_Datei
    
    for %%c in (%3) do (
       if not exist "%%~dc%%~pnc" mkdir "%%~dc%%~pnc"   
       move %3 "%%~dc%%~pnc"    
    )
    
    
    
    
    goto exit_batch
    
    
    rem --------------------------------------------------
    
    :no_params
    echo.
    echo. kein Ordner angegeben...
    echo. verwende aktuellen Ordner
    set src=.
    rem ... und Rücksprung
    goto param_
    rem echo. [Abbruch]
    rem echo.
    rem goto end_batch
    
    
    :err_param
    echo.
    echo. Ordner "%1" scheint nicht zu existieren, kein Zugriff oder nix drin!
    echo. [Abbruch]
    echo.
    goto end_batch
    
    :err_R_Datei
    echo. Kein Zugriff auf oder Datei "%3" existiert nicht!
    echo. [skip...]
    goto exit_batch
    
    :err_R_Dummy
    echo. Dummer Zufall...
    echo. Dummy-Ordner "%4__" existiert bereits!
    echo. [skip...]
    goto exit_batch
    
    
    rem --------------------------------------------------
    
    :end_batch
    rem falls noch irgendetwas zu sagen ist...
    pause
    
    :exit_batch
    Geändert von Unlimiter (04.04.2015 um 17:45 Uhr)

  12. Diesen Mitgliedern gefällt dieser Beitrag:


  13. #8
    Top-Secret-VIP
    Registriert
    Mar 2015
    Beiträge
    218
    Gefällt mir!
    110
    Du gefällst: 190
    Warum so riesig?
    Code:
    for /F %%i in ('Dir /B *.flv') do md "%%~ni"|move "%%i" "%%~ni"

  14. Diesen Mitgliedern gefällt dieser Beitrag:


  15. #9
    VIP Team Avatar von Unlimiter
    Registriert
    Mar 2015
    Beiträge
    728
    Gefällt mir!
    125
    Du gefällst: 632
    Hast du deines schon mal ausprobiert Celv?

    Es fängt schon damit an, dass bei der Annahme "Neues Video.flv" ein Ordner erstellt wird mit "Neues". Syrius Lösung war was den Punkt "eben schnell mal gemacht" angeht sogar die Sauberste.
    Geändert von Unlimiter (04.04.2015 um 17:45 Uhr)

  16. Diesen Mitgliedern gefällt dieser Beitrag:


  17. #10
    Top-Secret-VIP
    Registriert
    Mar 2015
    Beiträge
    218
    Gefällt mir!
    110
    Du gefällst: 190
    Zitat Zitat von Unlimiter Beitrag anzeigen
    Hast du deines schon mal ausprobiert Celv?

    Es fängt schon damit an, dass bei der Annahme "Neues Video.flv" ein Ordner erstellt wird mit "Neues". Syrius Lösung war was den Punkt "eben schnell mal gemacht" angeht sogar die Sauberste.
    Code:
    for /F "delims=- tokens=1" %%i in ('Dir /B *.AVI *.MKV *.FLV *.WMV) do md "%%~ni"|move "%%i" "%%~ni"
    Dann halt so

  18. Diesen Mitgliedern gefällt dieser Beitrag:


  19. #11
    VIP Team Avatar von Unlimiter
    Registriert
    Mar 2015
    Beiträge
    728
    Gefällt mir!
    125
    Du gefällst: 632
    Wo wir von der Sauberkeit (betrifft auch Struktur) her bei Syrius wären und der Unterschied ansonsten bei "DIR" wäre. Übrigens könnten auch Bilder dabei sein? So würde die Festlegung der Extensions etwas kontraproduktiv sein. Trotzdem schön, dass dein Code es enthält. Immerhin kann The Don so dies auch bei Interesse nutzen und weiß was die Zeile bedeutet.

    // Nebenbei werde ich heute einmal in den Schreibstreik treten. Meine Sätze und Gedankengänge sind auch nicht mehr so das Wahre.

    //Edit: Eins noch:
    Sämtliche Lösungen ignorieren immer noch die Fehler der Zeichen "&" und Co. welche nicht innerhalb des Ordnernames verwendet werden dürfen.
    Geändert von Unlimiter (04.04.2015 um 17:56 Uhr)

  20. Diesen Mitgliedern gefällt dieser Beitrag:


  21. #12
    Top-Secret-VIP
    Registriert
    Mar 2015
    Beiträge
    218
    Gefällt mir!
    110
    Du gefällst: 190
    Zitat Zitat von Unlimiter Beitrag anzeigen
    Wo wir von der Sauberkeit (betrifft auch Struktur) her bei Syrius wären und der Unterschied ansonsten bei "DIR" wäre. Übrigens könnten auch Bilder dabei sein? So würde die Festlegung der Extensions etwas kontraproduktiv sein. Trotzdem schön, dass dein Code es enthält. Immerhin kann The Don so dies auch bei Interesse nutzen und weiß was die Zeile bedeutet.

    // Nebenbei werde ich heute einmal in den Schreibstreik treten. Meine Sätze und Gedankengänge sind auch nicht mehr so das Wahre.
    Hast recht ist sauberer
    Hatte meins auch nur schnell mal so hingeklatscht weil er mich im ICQ gefragt hat ob ich ihn was hinklatschen kann :O

    Code:
    for /f "Tokens=*" %%i IN ('Dir /B /S *.flv *.wmv *.mp4 *.mkv *.avi *.mpg *.mpeg *.mov *.ts *.m2ts *.rm *.rmvb *.ogm *.webm *.txt') do (
        md "%%~ni"
        move "%%~i" "%%~ni"
    )
    Hab mal Syrius Version etwas abgeändert, da seine auch die Batch selber verschiebt. Hier wird nun nur noch verschoben, was The Don verschoben haben will.
    Da The Don die Batch so oder so im Selben Verzeichnis lagert, braucht er die Difinition für's Homedir auch nicht

    Den Streik sollte ich mit meinem Kopf auch mal angehen^^

    EDIT: Diese Lösung ignoriert die &-Zeichen nicht
    Geändert von Celv (04.04.2015 um 17:58 Uhr)

  22. Diesen Mitgliedern gefällt dieser Beitrag:


  23. #13
    Boardgrufti
    THEMENSTARTER

    Avatar von The Don
    Registriert
    Mar 2015
    Beiträge
    904
    Gefällt mir!
    1,120
    Du gefällst: 683
    Zitat Zitat von Unlimiter Beitrag anzeigen
    //Edit: Eins noch:
    Sämtliche Lösungen ignorieren immer noch die Fehler der Zeichen "&" und Co. welche nicht innerhalb des Ordnernames verwendet werden dürfen.
    Wus? Klar darf ich & oder % als Ordnernamen nutzen.

    Zitat Zitat von Kurt Cobain
    You're laughing at me because I'm different? I'm laughing at you because you're all the same!

  24. #14
    VIP Team Avatar von Unlimiter
    Registriert
    Mar 2015
    Beiträge
    728
    Gefällt mir!
    125
    Du gefällst: 632
    Ich bin auch heute nicht mehr so auf der Höhe (:o) und meinte "? \ / : ... ".

  25. Diesen Mitgliedern gefällt dieser Beitrag:


  26. #15
    Boardgrufti
    THEMENSTARTER

    Avatar von The Don
    Registriert
    Mar 2015
    Beiträge
    904
    Gefällt mir!
    1,120
    Du gefällst: 683
    Ich bin heute auch froh wenns ins Bette geht. Von daher, allen einen herzlichen Dank! Und frohe Ostern.

    Zitat Zitat von Kurt Cobain
    You're laughing at me because I'm different? I'm laughing at you because you're all the same!

  27. Diesen Mitgliedern gefällt dieser Beitrag:


Ähnliche Themen

  1. (BATCH) - Wie Datum an Dateinamen anhaengen?
    Von ShadowEagle im Forum Entwicklung / Programmierung
    Antworten: 7
    Letzter Beitrag: 18.02.2020, 16:25
  2. Ordner Löschen und Standardeinstellungen für Ordner ändern geht nicht
    Von freuemich im Forum Filecrypt.cc - Anregung & Kritik
    Antworten: 2
    Letzter Beitrag: 01.03.2018, 14:11
  3. (BATCH) - Batch zum verschieben von Ordner nach Genre
    Von Sairenji im Forum Entwicklung / Programmierung
    Antworten: 2
    Letzter Beitrag: 20.06.2017, 15:21
  4. [API] Liste mit Links die offline sind ink. Ordner ID & Dateinamen
    Von darkness im Forum Filecrypt.cc - Anregung & Kritik
    Antworten: 6
    Letzter Beitrag: 06.05.2017, 22:04
  5. Offline Ordner nach x-Tagen automatisch löschen
    Von Jana-Maria im Forum Filecrypt.cc - Anregung & Kritik
    Antworten: 8
    Letzter Beitrag: 15.03.2016, 22:49

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
SzeneBox.org... im Mittelpunkt der Szene!
© since 2015 szeneBOX.org - All Rights Reserved
Domains: www.szenebox.org