批处理子文件夹中的 OCR 文件并使用新名称保存新文件

Posted

技术标签:

【中文标题】批处理子文件夹中的 OCR 文件并使用新名称保存新文件【英文标题】:Batch OCR files in subfolders and save new files with new name 【发布时间】:2021-08-26 19:55:33 【问题描述】:

我有以下代码,其中 OCR 的所有 PDF 文件位于特定文件夹 (d:\extracttmp2) 中,但它没有按照我的意愿重命名文件,或者将新文件放在正确的位置。

目前,所有文件都在“extracttmp2”的子文件夹中。

OCR 运行正常,但我希望将 OCR 文件重命名为:<parent folder path>-<filename>_ocred.pdf。以这种方式命名它们不会产生文件覆盖。

目前,代码 OCR 是文件,但它将新文件保存到它们所在文件夹上方的文件夹中。它还将文件名保存为“JAN_ocred.pdf”,例如,对于名为“JAN.pdf”的文件。 .pdf”。保存一个文件夹的结果会导致一些文件覆盖,这是不需要的。

此外,经过 OCR 处理的文件是否保留在未经过 OCR 处理的文件所在的文件夹中,或者它们是否保存在一个文件夹中也没有关系。所需的重命名将消除任何覆盖。

我使用的软件是PDF24。 https://creator.pdf24.org/manual/10/#command-line。但是,我认为我的问题不在于 OCR 软件,而在于批处理脚本中的语法。

谁能告诉我我做错了什么?

    For /R d:\extracttmp2\ %%G in (*.pdf) do "C:\Program Files\PDF24\pdf24-Ocr.exe" -outputFile "%%~nG_ocred.pdf" -language eng -dpi 300 -skipFilesWithText "%%G"

【问题讨论】:

【参考方案1】:

这是你的意思吗?即文件将保存在与以前相同的位置,但每个名称都将以其父目录名称为前缀,后跟连字符/破折号。

@For /R "D:\extracttmp2" %%G In (*.pdf) Do @For %%H In ("%%~dpG.") Do @"%ProgramFiles%\PDF24\pdf24-Ocr.exe" -outputFile "%%~nxH-%%~nG_ocred%%~xG" -language eng -dpi 300 -skipFilesWithText "%%G"

简单说明一下:D:\extracttmp2\directory1\JAN.pdf 将保存在名为 directory1-JAN_ocred.pdfD:\extracttmp2\directory2\subdirectory3\SOMENAME.pdf 的工作目录中,为 subdirectory3-SOMENAME_ocred.pdf

如果您想将文件保存在其他位置,请更改工作目录,或将其添加到 %%~nxH-%%~nG_ocred%%~xG

【讨论】:

这正是我想要的!!!非常感谢你的帮助!! ????

以上是关于批处理子文件夹中的 OCR 文件并使用新名称保存新文件的主要内容,如果未能解决你的问题,请参考以下文章

Python实现对csv的批量处理并保存

Python实现对csv的批量处理并保存

如何根据指定目录从一个文件夹中(含子文件夹)中搜索对应文件并自动复制至新路径下?

Python子进程 - 在新文件中保存输出

最新OCR文字识别软件提高OCR性能的方法

ug修改实体名称