jocheng
Goto Top

Bat Datei - Order auslesen in Zeilen

Hallo Leute
Ich versuche gerade meinen Bilderorder auszulesen und in eine Datei zu speichern. Bisher habe ich

[autorun]
cd C:\test\
dir *.jpg *.mkv /b /o:N /s > C:\test\verzeichnisse.txt
exit

und eine schöne Liste (Zeilen) mit allen Dateinamen. Was ich aber brauche ist eine Liste mit Zeilen und Spalten.

Immer wenn die ersten 6 Stellen des Dateinamen gleich sind soll der Bildname in die gleiche Zeile

Bisher
Beispiel:
DSCI12-31072015-1.jpg
DSCI12-31072015-2.jpg
DSCI12-31072015-3.jpg
DSCI12-31072015-4.jpg
DSCI12-31072015-5.jpg
ADI354-12062015-1.jpg
ADI354-12062015-2.jpg
ADI354-12062015-3.jpg
ADI354-12062015-4.jpg
ADI354-12062015-5.jpg
ADI357-12062015-Sonnenuntergang.jpg
ADI357-12062015-Schirm.jpg

Nachher:
DSCI12;DSCI12-31072015-1.jpg;DSCI12-31072015-2.jpg;DSCI12-31072015-3.jpg;DSCI12-31072015-4.jpg;DSCI12-31072015-5.jpg
ADI354;ADI354-12062015-1.jpg;ADI354-12062015-2.jpg;ADI354-12062015-3.jpg;ADI354-12062015-4.jpg;ADI354-12062015-5.jpg
ADI357;ADI357-12062015-Sonnenuntergang.jpg;ADI357-12062015-Schirm.jpg

Kann mir jemand helfen

Content-ID: 287475

Url: https://administrator.de/contentid/287475

Ausgedruckt am: 26.11.2024 um 11:11 Uhr

114757
114757 04.11.2015 aktualisiert um 09:53:46 Uhr
Goto Top
Moin.
@echo off
set "quelle=D:\Bilder"  
set "output=D:\datei.txt"  
powershell -ExecutionPolicy ByPass -Command "gci '%quelle%' -Include '*.jpg','*.mkv' -Recurse | sort Name | group {$_.Name.SubString(0,6)} | %%{$_.Group.Name -join ';'} | set-content '%output%'"  
Gruß jodel32
TlBERlUS
TlBERlUS 04.11.2015 aktualisiert um 09:56:46 Uhr
Goto Top
Gute Morgen,

nimm Powershell:
$arr = gci c:\test\ -recurse
foreach($a in $arr){
$a | Add-Content c:\test.txt
}

Edit: Mal wieder langsamer gewesen face-smile
jocheng
jocheng 04.11.2015 um 11:34:41 Uhr
Goto Top
Zitat von @114757:

Moin.
> @echo off
> set "quelle=D:\Bilder"  
> set "output=D:\datei.txt"  
> powershell -ExecutionPolicy ByPass -Command "gci '%quelle%' -Include '*.jpg','*.mkv' -Recurse | sort Name | group {$_.Name.SubString(0,6)} | %%{$_.Group.Name -join ';'} | set-content '%output%'"  
> 
Gruß jodel32

Die Datei wird erstellt es stehen aber nur leere Zeilen drin Keine Bildpfade etc
114757
114757 04.11.2015 aktualisiert um 19:13:09 Uhr
Goto Top
Zitat von @jocheng:
Die Datei wird erstellt es stehen aber nur leere Zeilen drin Keine Bildpfade etc
Du hast noch eine alte Powershell du musst mind. Version 3.0 verwenden ...

oder diese Version verwenden welche ich PS 2.0 kompatibel gemacht habe:
@echo off
set "quelle=D:\Bilder"  
set "output=D:\datei.txt"  
powershell -ExecutionPolicy ByPass -Command "gci '%quelle%' -Include '*.jpg','*.mkv' -Recurse | sort Name | group {$_.Name.SubString(0,6)} | %%{$_.Name + ';' + (($_.Group | select -Expand Name) -join ';')} | set-content '%output%'"  
jocheng
jocheng 04.11.2015 um 12:49:57 Uhr
Goto Top
Zitat von @114757:

Zitat von @jocheng:
Die Datei wird erstellt es stehen aber nur leere Zeilen drin Keine Bildpfade etc
Du hast noch eine alte Powershell du musst mind. Version 3.0 verwenden ...

oder diese Version verwenden welche ich PS 2.0 kompatibel gemacht habe:
> @echo off
> set "quelle=D:\Bilder"  
> set "output=D:\datei.txt"  
> powershell -ExecutionPolicy ByPass -Command "gci '%quelle%' -Include '*.jpg','*.mkv' -Recurse | sort Name | group {$_.Name.SubString(0,6)} | %%{($_.Group | select -Expand Name) -join ';'} | set-content '%output%'"  
> 

genial. Jetzt fehlt nur noch in der ersten spalte der Wert mit den 6 stellen ;)
114757
114757 04.11.2015 aktualisiert um 12:59:47 Uhr
Goto Top
Zitat von @jocheng:
genial. Jetzt fehlt nur noch in der ersten spalte der Wert mit den 6 stellen ;)
Ach so, das habe nicht gesehen da es nicht explizit im Post erwähnt war, ist jetzt im letzten Post ergänzt ...
jocheng
jocheng 04.11.2015 um 15:11:18 Uhr
Goto Top
Zitat von @114757:

Zitat von @jocheng:
genial. Jetzt fehlt nur noch in der ersten spalte der Wert mit den 6 stellen ;)
Ach so, das habe nicht gesehen da es nicht explizit im Post erwähnt war, ist jetzt im letzten Post ergänzt ...

Du bist ein Gott nur ist fehlt jetzt nach dem ersten Bild jetzt das ; und das obwohl ';' angegeben ist. Ich habe es schon mit einem + ';' probiert aber dann bekomme ich einen Fehler!
114757
114757 04.11.2015 aktualisiert um 17:43:15 Uhr
Goto Top
Zitat von @jocheng:
Du bist ein Gott nur ist fehlt jetzt nach dem ersten Bild jetzt das ; und das obwohl ';' angegeben ist. Ich habe es schon mit einem + ';' probiert aber dann bekomme ich einen Fehler!
Nö, geht hier wie gewünscht ...Musst du schon mehr erläutern was wo fehlt ...
Bei einer CSV hast du nie am Ende ein alleine stehendes Semikolon, außer danach soll eine leere Spalte kommen. That's by design !
jocheng
jocheng 04.11.2015 um 18:19:39 Uhr
Goto Top
Also bei mir Schreibt er

DSCI12;DSCI12-31072015-1.jpg DSCI12-31072015-2.jpg DSCI12-31072015-3.jpg DSCI12-31072015-4.jpg DSCI12-31072015-5.jpg
ADI354;ADI354-12062015-1.jpg ADI354-12062015-2.jpg ADI354-12062015-3.jpg ADI354-12062015-4.jpg ADI354-12062015-5.jpg
ADI357;ADI357-12062015-Sonnenuntergang.jpg ADI357-12062015-Schirm.jpg
114757
Lösung 114757 04.11.2015 aktualisiert um 20:24:33 Uhr
Goto Top
Wie schon gesagt PS Update machen die PS2.0 hat diverse Bugs ...(habs nochmal minimal angepasst, zusätzliche Klammersetzung damit die PS2.0 das frisst.)
jocheng
jocheng 04.11.2015 um 20:24:47 Uhr
Goto Top
genial funktioniert face-smile