我正在尝试提取位于一系列文本文件(字幕文件)中特定行的第一个和第二个逗号之间的字符串。文本文件的格式如下:
字幕01.txt
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour
Style: Default, Estrangelo Edessa, 57, &H00FFFFFF
Style: Title1, Arno Pro, 65, &H00606066
字幕02.txt
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour
Style: OP Eng, Arno Pro, 45, &H00100F11
Style: ED Romaji, Nueva Std Cond, 46, &H00FFFFFF
字幕03.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
我在这里要实现的是提取以“样式:”开头的每一行的字体名称,然后以不重复的方式确定哪些字幕包含我想要的字体。因此,基本上最终结果将输出到如下文本文件;
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。目标是使用最少的文件来找到所有文件中的唯一字体。我想出了以下批处理脚本,使用findstr来提取以“Style:”开头的行,但我被困在这之外。
@echo off
findstr /B /C:"Style:" *.txt > results.txt
if %errorlevel%==0 (
echo Found! logged files into results.txt
) else (
echo No matches found
)
任何帮助,将不胜感激。谢谢你们!