Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Jalbum Listen statt M3u - kopieren Batch

Frage Entwicklung Batch & Shell

Mitglied: pbelcl

pbelcl (Level 1) - Jetzt verbinden

21.01.2010 um 15:34 Uhr, 4034 Aufrufe, 18 Kommentare

da wär noch eine Kleinigekeit

Hi Leute,

in diesem Thread hat mit bastla geholfen meine Batchdatei auch mit Leerzeichen zm Laufen zu bringen.
Nun habe ich vor gehabt die Listen die mein Jalbum erzeugt HÄNDISCH in eine M3U Datei umzuwandeln, um damit in der Lage zu sein damit meine ausgewählten Fotos wohin kopieren zu können.

Ist es vielleicht möglich auch gleich die JALBUM Listen als Basis zum Kopieren zu verwenden?
Diese Liste sind folgendermassen aufgebaut:

01.
# This file is created by JAlbum. It sets custom file filtering and ordering for this image directory. 
02.
# Each row indicate a file and it's order. Files not listed here are added to the end of the album 
03.
# Rows beginning with "-" indicate excluded files. 
04.
# Rows containing a tab character indicate links, where the text before the tab is the logical file name 
05.
# and the path to the right is the target path. 
06.
# Note: This file allows absolute paths to files and directories in other locations and thereby 
07.
# allows you to compile albums consisting of files from several different locations. 
08.
 
09.
DSC_0424.JPG	P:\Fotos DVD\Fotos_12\5. Wiener Fotomarathon\Wertung\DSC_0424.JPG 
10.
DSC_0426.JPG	P:\Fotos DVD\Fotos_12\5. Wiener Fotomarathon\Wertung\DSC_0426.JPG 
11.
DSC_0427.JPG	P:\Fotos DVD\Fotos_12\5. Wiener Fotomarathon\Wertung\DSC_0427.JPG 
12.
DSC_0430.JPG	P:\Fotos DVD\Fotos_12\5. Wiener Fotomarathon\Wertung\DSC_0430.JPG 
13.
DSC_0434.JPG	P:\Fotos DVD\Fotos_12\5. Wiener Fotomarathon\Wertung\DSC_0434.JPG 
14.
DSC_0437.JPG	P:\Fotos DVD\Fotos_12\5. Wiener Fotomarathon\Wertung\DSC_0437.JPG 
15.
DSC_0462.JPG	P:\Fotos DVD\Fotos_12\5. Wiener Fotomarathon\Wertung\DSC_0462.JPG
Ich will aus dem ganzen Textfile nur den Pfad rechts "P:\Fotos DVD\Fotos_12\5. Wiener Fotomarathon\Wertung\DSC_0462.JPG" in einer Variable haben.

Die Frage ist, geht das überhaupt??
Wenn ja was muss ich an diesem Teil

01.
FOR /F "eol=; delims=" %%i in (%PLS%%liste%.m3u) do ( 
02.
if Exist "%%i" copy "%%i" "%zielpfad%\%%~nxi" /v /y>nul  
03.
if %2!==! if EXIST %%i %utildir%\colecho 10 0 kopiere:  %%i  
04.
if NOT EXIST %%i %utildir%\colecho 12 0 fehlt:  %%i  
05.
if NOT EXIST %%i echo %%i --- fehlt!>>"%zielpfad%\0_fehlende_Dateien.txt"  
06.
)
meines Batch abändern, damit ich die Pfade direkt aus dem JALBUM File lesen kann.

Oder hat jemand von Euch eine andere, bessere Idee??
Mitglied: 60730
21.01.2010 um 15:52 Uhr
Servus,

01.
for /f "tokens=2,* eol=#" %a in (jalbum.datei) do echo %a %b>>meine.m3u
Das ganze kannst du gerne noch so verfeinern, dass er nur dann, wenn %b einen Wert hat auch %b geschrieben wird.

Ps: Deine Überschrift ist etwas irrführend.
Jalbum Listen statt M3u
Willst Du das nicht andersherum?

Gruß
Bitte warten ..
Mitglied: bastla
21.01.2010 um 16:19 Uhr
@TimoBeil
Wird eher
for /f "tokens=1* eol=#" %a in (jalbum.datei) do echo %a >>meine.m3u
sein ...

Grüße
bastla
Bitte warten ..
Mitglied: 60730
21.01.2010 um 16:23 Uhr
Zitat von bastla:
@TimoBeil
Wird eher
for /f "tokens=1* eol=#" %a in (jalbum.datei) do echo %a >>meine.m3u 
> 
sein ...

...and the winner is - the one and only best bastla in town
Grüße
bastla

zurück

Edit:
ich tausche deine 1 gegen meine 2... -> rechts ist doch da, wo der daumen links ist...
for /f "tokens=2* eol=#" %a in (jalbum.datei) do echo %a >>meine.m3u
Bitte warten ..
Mitglied: bastla
21.01.2010 um 16:33 Uhr
@TimoBeil

Wenn Du tauschst, darf ich das wohl auch - ich nehme dann Dein %b:
for /f "tokens=1* eol=#" %a in (jalbum.datei) do echo %b >>meine.m3u
Grüße
bastla
Bitte warten ..
Mitglied: 60730
21.01.2010 um 16:40 Uhr
Zitat von bastla:
@TimoBeil

Wenn Du tauschst, darf ich das wohl auch - ich nehme dann Dein %b:
@bastla: Moooment Zahlen zählen nicht
Aber einen Vokal gegen einen Konsonanten tauschen, darfst nur Du
Grüße
bastla
surüg
Bitte warten ..
Mitglied: bastla
21.01.2010 um 16:56 Uhr
Aber einen Vokal gegen einen Konsonanten tauschen, darfst nur Du
Merci vielmals

bastla
Bitte warten ..
Mitglied: pbelcl
21.01.2010 um 22:27 Uhr
Danke Leute für Eure Codeschnipsel!!

Ist jedefalls echt lustig euch beim tauschen zuzusehen

Ich habe zwar jetzt noch keine Anhnung welches eurer Codeschnipsel funktioniert, aber egal!
Werde morgen alle testen und dann eh sehen welches davon klappt.

ich tippe auf

01.
for /f "tokens=2* eol=#" %a in (jalbum.datei) do echo %a >>meine.m3u

Danke mal vorerst !!
Bitte warten ..
Mitglied: pbelcl
24.01.2010 um 11:23 Uhr
Hallo Ihr Beiden,

Habe meine bessere Hälfte ins Kaffeehaus geschickt, und deshalb gerade wieder etwas Zeit mich mit dem Batch zu beschäftigen.
Zuerst mal vermute ich dass "%a" in euren Codeschnipsel eher "%%a" heissen sollte, oder

Hab meine bestehende Batchdatei mal auf die notwendigsten Dinge reduziert um zu testen.
01.
@echo off 
02.
 
03.
set "Z_LW=l:"  
04.
set "Z_V=Test Test" 
05.
for /f "tokens=2* eol=#" %%i in (Jalbum.txt) do ( 
06.
echo "%%i" 
07.
pause 
08.
copy "%%i" "%Z_LW%\%Z_V%\%%~nxi" /v /y 
09.
10.
pause
Wenn ich:
01.
for /f "tokens=1* eol=#" %%i in (Jalbum.txt) do (
mache dann ist in der Variable %%i der erste Teil der Jalbum.txt nämlich "DSC_0424.JPG".


Wenn ich:
01.
for /f "tokens=2* eol=#" %%i in (Jalbum.txt) do (
mache dann ist in der Variable %%i der Anfang des Pfades den ich brauche, aber nur bis zum ersten Space! -> "P:\Fotos"

Da ich in der Textdatei des Jalbum keinen brauchbaren Delimitter habe, fürchte ich dass es schwierig ist den GANZEN String "P:\Fotos DVD\Fotos_12\5. Wiener Fotomarathon\Wertung\DSC_0424.JPG " in die Variable zu bekommen.
Oder hat jemand von Euch noch eine Idee?
Bitte warten ..
Mitglied: bastla
24.01.2010 um 11:37 Uhr
Hallo pcbelcl!
Zuerst mal vermute ich dass "%a" in euren Codeschnipsel eher "%%a" heissen sollte, oder
Je nachdem - wenn Du zum Testen die Zeile direkt in der CMD-Shell eingibst, nur ein Prozentzeichen - innerhalb eines Batches immer "%%a" ...
Wenn ich:
for /f "tokens=1* eol=#" %%i in (Jalbum.txt) do (
mache dann ist in der Variable %%i der erste Teil der Jalbum.txt nämlich "DSC_0424.JPG".
Deshalb solltest Du auch (analog zu "%a" --> "%b" - TimoBeil hatte mir ja die ausdrückliche Erlaubnis zum Tausch gegeben ) den Inhalt von "%%j" verwenden ...

Grüße
bastla
Bitte warten ..
Mitglied: pbelcl
24.01.2010 um 12:55 Uhr
Hi bastla,

Ah ich beginne zu verstehen....

Wenn ich also dann mein Batch so ändere
01.
for /f "tokens=2* eol=#" %%i in (Jalbum.txt) do ( 
02.
copy "%%j" "%Z_LW%\%Z_V%\%%~nxi" /v /y 
03.
)
dann ist in der Variable %%j der String "DVD\Fotos_11\Bodypainting Festival 2008\Zelte_SA_DSC_711844.JPG"

Ich habs jetzt mal so abgewandelt:
01.
for /f "tokens=2* eol=#" %%i in (Jalbum.txt) do ( 
02.
copy "%%i %%j" "%Z_LW%\%Z_V%\%%~nxj" /v /y 
03.
)
DAS funktioniert auch so weit.
Stellt sich nur die Frage ob er auch "sauber" ist ?

Werd das Ganze jetzt mal wieder in meine ursprüngliche Batch Umgebung einpflegen und melde mich dann wieder .....
Bitte warten ..
Mitglied: pbelcl
24.01.2010 um 13:26 Uhr
Hi bastla,

Hab das Ganze jetzt mal wieder in meine haupt Batch eingebaut. Es funktioniert grundsätzlich schon, aber wenn dann in der Echtumgebung im Jalbum Dateinamen ein Space drinnen ist, klappts gleich gar nicht mehr ;-(

in Echt sieht es dann so aus:

01.
for /f "tokens=2* eol=#" %%i in (%LIST_V%\%liste%.txt) do ( 
02.
if Exist "%%i %%j" copy "%%i %%j" "%Z_LW%\%Z_V%\%liste%\%%~nxj" /v /y>nul 
03.
if EXIST "%%i %%j" %utildir%\echo kopiere:  %%i %%j 
04.
if NOT EXIST "%%i %%j" %utildir%\echo fehlt:  %%i %%j  
05.
if NOT EXIST "%%i %%j" echo %%i %%j --- fehlt!>>"%Z_LW%\%Z_V%\0_fehlende_Dateien.txt" 
die Variablen haben folgende Inhalte:
%Z_LW% = P:
%Z_V% = CD'S\3 - POCKET PC
%LISTE% = JALBUM TEST
%LIST_V% = P:\PROGS\BATCH\FOTOALBEN

Die Testdatei heißt "jalbum Test.txt"

Ich habs auch schon mit Anführungszeichen probiert,
01.
for /f "tokens=2* eol=#" %%i in ("%LIST_V%\%liste%.txt") do (
hat auch nicht geklappt ;-(
Bitte warten ..
Mitglied: bastla
24.01.2010 um 14:17 Uhr
Hallo pbelcel!

Du kannst Dich nicht durchringen, die von mir vorgeschlagene Variante
for /f "tokens=1* eol=#" %%i in (%LIST_V%\%liste%.txt) do (
zu testen? Da der gesamte Pfad in "%%j" enthalten ist, sollte der Rest relativ problemlos sein ...

Grüße
bastla
Bitte warten ..
Mitglied: pbelcl
24.01.2010 um 14:45 Uhr
Hallo Bastla,

Sorry aber ihr habt mich etwas verwirt, mit eurem tauschen

Ich hab jetzt mal DEINE Version da eingebaut:
01.
for /f "tokens=1* eol=#" %%i in (%LIST_V%\%liste%.txt do ( 
02.
if Exist "%%j" copy "%%j" "%Z_LW%\%Z_V%\%liste%\%%~nxj" /v /y 
03.
if EXIST "%%j" %utildir%\colecho 10 0 kopiere:  %%j 
04.
if NOT EXIST "%%j" %utildir%\colecho 12 0 fehlt:  %%j  
05.
if NOT EXIST "%%j" echo %%j --- fehlt in %liste%!>>"%Z_LW%\%Z_V%\0_fehlende_Dateien.txt" 
Auch hier: wenn die Variable %LISTE% einen Space drin hat z.B. "jalbum Test.txt", dann klappts nicht mehr.
Das Bach sucht dann nach einer Datei "jalbum" ....

Ich glaube ich werde die Dateien einfach mit "_" statt mit Space benennen, ist glaube ich einfacher
Bitte warten ..
Mitglied: bastla
24.01.2010 um 14:52 Uhr
Hallo pbelcl!

Sorry, da hatte ich dran vorbeigelesen ...

Versuch es so:
for /f "usebackq tokens=1* eol=#" %%i in ("%LIST_V%\%liste%.txt") do (
Grüße
bastla
Bitte warten ..
Mitglied: pbelcl
24.01.2010 um 14:54 Uhr
Hab gerade noch was rausgefunden:

Wenn mein Jalbum.txt in den Fotonamen Space drin hat, z.B:
01.
Bahaia Beach_DSC_7820.JPG	P:\Fotos DVD\Fotos_12\Azoren 2008\Bahaia Beach_DSC_7820.JPG 
02.
Bahaia Beach_DSC_7823.JPG	P:\Fotos DVD\Fotos_12\Azoren 2008\Bahaia Beach_DSC_7823.JPG 
03.
Bahaia Beach_DSC_8058.JPG	P:\Fotos DVD\Fotos_12\Azoren 2008\Bahaia Beach_DSC_8058.JPG 
04.
Bahaia Beach_P1010505.JPG	P:\Fotos DVD\Fotos_12\Azoren 2008\Bahaia Beach_P1010505.JPG 
05.
Bahaia Beach_P1010508.JPG	P:\Fotos DVD\Fotos_12\Azoren 2008\Bahaia Beach_P1010508.JPG 
06.
Bahaia Beach_P1010512.JPG	P:\Fotos DVD\Fotos_12\Azoren 2008\Bahaia Beach_P1010512.JPG 
07.
Bahaia Beach_P1010517.JPG	P:\Fotos DVD\Fotos_12\Azoren 2008\Bahaia Beach_P1010517.JPG 
08.
Bahaia Beach_P1010524.JPG	P:\Fotos DVD\Fotos_12\Azoren 2008\Bahaia Beach_P1010524.JPG 
09.
Bahaia Beach_P1010529.JPG	P:\Fotos DVD\Fotos_12\Azoren 2008\Bahaia Beach_P1010529.JPG 
10.
Bahaia Beach_P1010533.JPG	P:\Fotos DVD\Fotos_12\Azoren 2008\Bahaia Beach_P1010533.JPG
dann klappts leider auch nicht ;-(

Ich fürchte JETZT wird's schön langsam kompliziert ....
Der einzig wirklich brauchbare Anhaltspunkt ist der Laufwerksname "P:\".
Bitte warten ..
Mitglied: bastla
24.01.2010 um 15:03 Uhr
Der einzig wirklich brauchbare Anhaltspunkt ist der Laufwerksname "P:\".
... es sei denn, zwischen dem Namen und dem Pfad befänden sich nicht Leerzeichen, sondern ein TAB - in diesem Fall müsste es mit
for /f "usebackq tokens=1* eol=# delims=    " %%i in ("%LIST_V%\%liste%.txt") do (
gehen (der "delims"-Wert ist ein TAB).

Grüße
bastla
Bitte warten ..
Mitglied: pbelcl
26.01.2010 um 07:43 Uhr
Zitat von bastla:
... es sei denn, zwischen dem Namen und dem Pfad befänden sich nicht Leerzeichen, sondern ein TAB - ....
Super Idee, denn genau so ist es auch!!
Damit klappt dein Codeschnipsel hervorragend !!

Danke bastla für die Hilfe!!
Werd jetzt mal meine ca. 50 Jalbumlisten zusammensammeln und durch das Batch laufen lassen. Bin schon gespannt ob's mit allen geht....

Vielleicht kann man ja das "zusammensammeln" auf automatisieren, mal sehen

Übrigens: Einen TAB gibt man mit "ALT+009" (am Numblock) ein, falls das jemand noch nicht weiß.
Bitte warten ..
Mitglied: pbelcl
27.01.2010 um 19:15 Uhr
Nach einigen Tests muss ich sagen dass es hervorragend funktioniert, danke nochmal!

Einzig mit den Umlauten in den Filenamen der Liste hab ich noch Probleme ;-(
eine Zeile wie diese:
01.
Teesdorf.jpg	P:\Fotos DVD\Fotos_03\ÖAMTC Fahrtechnik.2\Teesdorf.jpg
funktioniert nicht obwohl ich in meinem Batch als ersten Befehl:
01.
chcp 1252
Drin hab.
Ist das abhängig vom Programm welches den Text erstellt ?
Oder kann ich da auch von WYSIWG (what you see is what you get) ausgehen?

Ist zwar nicht SO wichtig, denn ich hatte sowieso vor ALLE Umlaute aus den Fotonamen rauszuwerfen, würde mich aber trotzdem interessieren.....
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...