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-Key: 287475

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

Printed on: April 18, 2024 at 00:04 o'clock

Mitglied: 114757
114757 Nov 04, 2015 updated at 08:53:46 (UTC)
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
Member: TlBERlUS
TlBERlUS Nov 04, 2015 updated at 08:56:46 (UTC)
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
Member: jocheng
jocheng Nov 04, 2015 at 10:34:41 (UTC)
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
Mitglied: 114757
114757 Nov 04, 2015 updated at 18:13:09 (UTC)
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%'"  
Member: jocheng
jocheng Nov 04, 2015 at 11:49:57 (UTC)
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 ;)
Mitglied: 114757
114757 Nov 04, 2015 updated at 11:59:47 (UTC)
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 ...
Member: jocheng
jocheng Nov 04, 2015 at 14:11:18 (UTC)
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!
Mitglied: 114757
114757 Nov 04, 2015 updated at 16:43:15 (UTC)
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 !
Member: jocheng
jocheng Nov 04, 2015 at 17:19:39 (UTC)
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
Mitglied: 114757
Solution 114757 Nov 04, 2015 updated at 19:24:33 (UTC)
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.)
Member: jocheng
jocheng Nov 04, 2015 at 19:24:47 (UTC)
Goto Top
genial funktioniert face-smile