oomatrixoo
Goto Top

Text auslesen, falls Name vorhanden, Datei(en) verschieben

Hallo.
Ich lasse mir Informationen von Filmdateien auslesen und in eine Textdatei speichern.

Das sieht so aus:

File 'D:\Movies\2014.mkv ': container: Matroska [duration:7922976000000 segment_uid:a3fcdea6650c1200852f162d0c3a044f is_providing_timecodes:1]  
Track ID 0: video (MPEG-4p10/AVC/h.264) [number:1 uid:3790950161031776682 codec_id:V_MPEG4/ISO/AVC codec_private_length:43 codec_private_data:0164001effe1001b6764001eacd940ec33a6a020202800000300080015f90078b16cb001000568ebecb22c language:und pixel_dimensions:944x400 display_dimensions:944x400 default_track:1 forced_track:0 enabled_track:1 packetizer:mpeg4_p10_video default_duration:41999999]
Track ID 1: audio (AC3/EAC3) [number:2 uid:14647068660427749778 codec_id:A_AC3 codec_private_length:0 language:ger default_track:1 forced_track:0 enabled_track:1 default_duration:32000000 audio_sampling_frequency:48000 audio_channels:6]
Track ID 2: subtitles (SubRip/SRT) [number:3 uid:10419281502289507242 codec_id:S_TEXT/UTF8 codec_private_length:0 language:und default_track:1 forced_track:0 enabled_track:1]
File 'D:\Movies\fun.mkv ': container: Matroska [duration:5982016000000 segment_uid:8837aa83709ef1fea2718eebbd640b5b is_providing_timecodes:1]  
Track ID 0: video (MPEG-4p10/AVC/h.264) [number:1 uid:16048750410252151224 codec_id:V_MPEG4/ISO/AVC codec_private_length:43 codec_private_data:0164001effe1001b6764001eacd940ec33a6a020202800000300080015f90078b16cb001000568ebecb22c language:und pixel_dimensions:944x400 display_dimensions:944x400 default_track:1 forced_track:0 enabled_track:1 packetizer:mpeg4_p10_video default_duration:41999999]
Track ID 1: audio (AC3/EAC3) [number:2 uid:3544243278998007431 codec_id:A_AC3 codec_private_length:0 language:ger default_track:1 forced_track:0 enabled_track:1 default_duration:32000000 audio_sampling_frequency:48000 audio_channels:6]
File 'D:\Movies\Test.mkv ': container: Matroska [duration:2584208000000 segment_uid:c0dcb4213eb3849d22da7c98aa0879f6 is_providing_timecodes:1]  
Track ID 0: video (MPEG-4p10/AVC/h.264) [number:1 uid:1 codec_id:V_MPEG4/ISO/AVC codec_private_length:46 codec_private_data:0164001fffe1001d6764001facc8602d0d7e7c05a808080a000003000200057e401e30633401000668e9786cb22c language:und pixel_dimensions:720x404 display_dimensions:720x404 default_track:1 forced_track:0 enabled_track:1 packetizer:mpeg4_p10_video default_duration:41666666]
Track ID 1: audio (AAC) [number:2 uid:2 codec_id:A_AAC codec_private_length:5 codec_private_data:119056e500 language:ger track_name:Stereo default_track:1 forced_track:0 enabled_track:1 audio_sampling_frequency:48000 audio_channels:2 tag_language:ger]
Track ID 2: audio (AAC) [number:3 uid:3 codec_id:A_AAC codec_private_length:5 codec_private_data:119056e50 language:eng track_name:Stereo default_track:0 forced_track:0 enabled_track:1 audio_sampling_frequency:48000 audio_channels:2 tag_language:eng]
Track ID 3: subtitles (SubStationAlpha) [number:4 uid:4 codec_id:S_TEXT/ASS codec_private_length:482 codec_private_data:5b53637269707420496e666f5d0d0a536372697074547970653a2076342e30302b0d0a436f6c6c6973696f6e733a204e6f726d616c0d0a506c6179526573583a20313931360d0a506c6179526573593a20313037360d0a54696d65723a203130302e300d0a577261705374796c653a20300d0a0d0a5b56342b205374796c65735d0d0a466f726d61743a204e616d652c20466f6e746e616d652c20466f6e7473697a652c205072696d617279436f6c6f75722c205365636f6e64617279436f6c6f75722c204f75746c696e65436f6c6f75722c204261636b436f6c6f75722c20426f6c642c204974616c69632c20556e6465726c696e652c20537472696b654f75742c205363616c65582c205363616c65592c2053706163696e672c20416e676c652c20426f726465725374796c652c204f75746c696e652c20536861646f772c20416c69676e6d656e742c204d617267696e4c2c204d617267696e522c204d617267696e562c20456e636f64696e670d0a5374796c653a2044656661756c742c417269616c2c37312c264830304646464646462c264830304646464646462c264830303046304630462c264830303046304630462c302c302c302c302c3130302c3130302c302c302e30302c312c322c332c322c32302c32302c32302c300d0a00 language:eng default_track:0 forced_track:0 enabled_track:1 tag_language:eng]
Track ID 4: subtitles (SubStationAlpha) [number:5 uid:5 codec_id:S_TEXT/ASS codec_private_length:482 codec_private_data:5b53637269707420496e666f5d0d0a536372697074547970653a2076342e30302b0d0a436f6c6c6973696f6e733a204e6f726d616c0d0a506c6179526573583a20313931360d0a506c6179526573593a20313037360d0a54696d65723a203130302e300d0a577261705374796c653a20300d0a0d0a5b56342b205374796c65735d0d0a466f726d61743a204e616d652c20466f6e746e616d652c20466f6e7473697a652c205072696d617279436f6c6f75722c205365636f6e64617279436f6c6f75722c204f75746c696e65436f6c6f75722c204261636b436f6c6f75722c20426f6c642c204974616c69632c20556e6465726c696e652c20537472696b654f75742c205363616c65582c205363616c65592c2053706163696e672c20416e676c652c20426f726465725374796c652c204f75746c696e652c20536861646f772c20416c69676e6d656e742c204d617267696e4c2c204d617267696e522c204d617267696e562c20456e636f64696e670d0a5374796c653a2044656661756c742c417269616c2c37312c264830304646464646462c264830304646464646462c264830303046304630462c264830303046304630462c302c302c302c302c3130302c3130302c302c302e30302c312c322c332c322c32302c32302c32302c300d0a00 language:eng default_track:0 forced_track:0 enabled_track:1 tag_language:eng]

Nun hab ich folgende Idee:
Per Batch soll in der Datei nach language:eng track_name gesucht werden.
Wenn in der Datei language:eng track_name vorhanden ist, soll 3 Zeilen weiter oben (bei File) der Dateiname / Pfad ausgelesen werden und die Datei in einen anderen Ordner verschoben werden. Es können sich um mehrere Dateien handeln, nicht wie hier im Beispiel nur eine.

Wäre dies überhaupt so machbar?

Vielen Dank.
Mit freundlichen Grüßen.

Content-Key: 263355

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

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

Member: rubberman
Solution rubberman Feb 13, 2015, updated at Feb 14, 2015 at 14:39:12 (UTC)
Goto Top
Hallo OOmatrixOO.

soll 3 Zeilen weiter oben
... und es sind ganz sicher immer 3 Zeilen?

Teste:
@echo off &setlocal
set "textfile=movies.txt"  
set "search=language:eng track_name"  
set "newfolder=D:\Movies_eng"  

if not exist "%newfolder%\" md "%newfolder%"  

setlocal EnableDelayedExpansion

set "found=" &set "num="  
for /f "delims=:" %%i in ('type "!textfile!"^|findstr /nc:"!search!"') do (  
  set /a "num=%%i - 3"  
  set "found=!found!!num!: "  
)

if not defined found exit /b

for /f "tokens=2 delims='" %%i in ('type "!textfile!"^|findstr /n "^^^"^|findstr /b "!found!"') do (  
  endlocal
  set "file=%%i"  
  setlocal EnableDelayedExpansion
  if "!file:~-1!"==" " (  
    move "!file:~,-1!" "!newfolder!\"  
  ) else (
    move "!file!" "!newfolder!\"  
  )
)
Grüße
rubberman
Member: OOmatrixOO
OOmatrixOO Feb 14, 2015 at 14:39:09 (UTC)
Goto Top
Hallo.
Danke dir. Funktioniert auf Anhieb. Perfekt.

MfG