如何将.pgn文件格式的棋谱文件批量转换为.bin文件格式?

如何将.pgn文件格式的棋谱文件批量转换为.bin文件格式?

序幕: 格式.pgn是一种文本文件格式,用于记录国际象棋动作以及其他信息,如日期、事件、得分、开局、引擎评估、变化、深度等。此文件格式可以轻松保存为格式,.txt并可以使用 notepad++ 等打开。当使用来自.pgn.bincreate.bat名为“多语言容忍”的项目,它被称为多语言国际象棋书。该程序可以在以下链接中找到,其中有一个小型 README 文件,解释了简单的过程: https://drive.google.com/drive/folders/1ZQkN2mQwMiLrCoMCpRlGMY-Zq9UrWVmF?usp=sharing

主要问题:我能够.bin.pgn文件格式制作国际象棋书。但问题是我一次只能制作一本书。当我必须转换 2000+ 不同 .pgn假设我将名为database1.pgn、、games.pgn等的文件分别转换为具有相同名称(如、、等)的tournament.pgn不同.bin格式的书籍文件,那么我不知道如何做到这一点。database1.bingames.bintournament.bin

我们如何才能批量转换 .pgn文件.bin在 Ubuntu 20.10 中格式化吗?

答案1

通晓多种语言可能就是你想要的。

像这样安装:

sudo apt install polyglot

像这样使用它:

for f in *.pgn
    do
    f1="${f%.pgn}"
    polyglot make-book -pgn "$f" -bin "$f1".bin -min-game 1
    done

从包含文件的目录中运行上述代码.pgn

答案2

如果我理解正确的话,您希望对许多文件运行相同的命令,以将它们从一种格式转换为另一种格式。我无法轻易找出您正在运行的命令,因此我用pgn_to_bin下面的命令替换了它,我假设它将结果输出到控制台(stdout)。

在包含文件的目录中的(Bash)shell/终端中运行此命令.pgn

for file in *.pgn; do
    pgn_to_bin "${file}" > "${file%.pgn}.bin"
done

翻译成英语就是:对于当前目录中以 结尾的每个文件名.png,执行以下操作:

  • pgn_to_bin filename_with_pgn_extension > filename_without_pgn_extension.bin

如果你有文件file1.pgnfile2.pgn,则会执行:

pgn_to_bin "file1.pgn" > "file1.bin"
pgn_to_bin "file2.pgn" > "file2.bin"

现在您只需调整命令行以匹配您用于转换单个文件的当前进程。

顺便说一下,${file%.pgn}语法使用Bash 的参数替换.pgn从输入文件名中删除后缀。

相关内容