一連のテキスト ファイル (字幕ファイル) の特定の行の最初と 2 番目のコンマの間にある文字列を抽出しようとしています。テキスト ファイルは次のようにフォーマットされます。
Subtitles01.txt
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour
Style: Default, Estrangelo Edessa, 57, &H00FFFFFF
Style: Title1, Arno Pro, 65, &H00606066
Subtitles02.txt
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour
Style: OP Eng, Arno Pro, 45, &H00100F11
Style: ED Romaji, Nueva Std Cond, 46, &H00FFFFFF
Subtitles03.txt
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour
Style: OP Eng, Estrangelo Edessa, 45, &H00100F11
Style: Default, Arno Pro, 45, &H00100F11
Style: ED Romaji, Nueva Std Cond, 46, &H00FFFFFF
ここで達成したいのは、「Style:」で始まる各行の Fontname を抽出し、必要なフォントがどの字幕に含まれているかを繰り返さない方法で判別することです。したがって、基本的に、最終結果は次のようなテキストファイルに出力されます。
Subtitles01.txt: Estrangelo Edessa
Subtitles01.txt: Arno Pro
Subtitles02.txt: Arno Pro
Subtitles02.txt: Nueva Std Cond
Subtitles03.txt: Estrangelo Edessa
Subtitles03.txt: Arno Pro
Subtitles03.txt: Nueva Std Cond
Only Subtitles03.txt is needed.
Subtitles03.txt には Subtitles01.txt と Subtitles02.txt のすべてのフォントが含まれているため、Subtitles03.txt のみが必要です。目標は、最小限のファイルを使用して、すべてのファイルで一意のフォントを見つけることです。「Style:」で始まる行を抽出するためにfindstrを使用して次のバッチ スクリプトを作成しましたが、それ以上は行き詰っています。
@echo off
findstr /B /C:"Style:" *.txt > results.txt
if %errorlevel%==0 (
echo Found! logged files into results.txt
) else (
echo No matches found
)
どんな助けでも大歓迎です。君たちありがとう!