如何从命令提示符对同一文件夹中的多个文件进行 tesseract?

Posted

技术标签:

【中文标题】如何从命令提示符对同一文件夹中的多个文件进行 tesseract?【英文标题】:How to tesseract multiple files in the same folder from command prompt? 【发布时间】:2015-10-19 05:43:12 【问题描述】:

我知道如何在 OS X 上使用终端对同一目录中的多个文件进行 Tesseract。

for i in *.tif ; do tesseract $i outtext;  done;

是否有人对如何在运行 Windows 的计算机上的命令提示符上执行此操作有建议?

【问题讨论】:

对于登陆这里的人来说一点——这将尝试将所有输出转储到同一个文件并覆盖它。 (Joe W 在下面的回答中也提到了这一点)。您可能更喜欢以for i in *.tif ; do tesseract $i "txtfolder/$i"; done; 执行此操作,这会将所有输出文件放在文件夹 txtfolder 中 【参考方案1】:

什么是 Windows 等效的 Unix for i 命令?

如果不确切知道 tesseract 命令在 Unix 上的作用与 Windows 相比,很难给出全面的答案。

在 Windows 上,您可以使用 for 命令对多个文件执行命令。

从命令行:

for %i in (*.tif) do tesseract %i outtext

在批处理文件中:

for %%i in (*.tif) do tesseract %%i outtext

进一步阅读

An A-Z Index of the Windows CMD command line - Windows cmd 行相关的所有内容的绝佳参考。 for - 有条件地对多个文件执行命令。

【讨论】:

【参考方案2】:

在上面的例子中:

for %%i in (*.tif) do tesseract %%i outtext

Tesseract 将在每次迭代中覆盖相同的输出文件outtext.txt。您最终将得到一个文件 (outtext.txt),其中仅包含最后一张图像中的文本。您需要唯一命名每个输出文件。您可以将字符串 outtext 替换为 %%i,如下所示。

for %%i in (*.tif) do tesseract %%i %%i

但是,如果您想要一个不同的输出文件名,您可以使用set 命令分配一个附加变量。然后为每次迭代增加这个变量。

set /a j=1
for %%i in (*.tif) do (
tesseract %%i output_file%j%
set /a j+=1
)

但是,%j% 将在每次迭代中扩展为“1”。您最终会得到一个名为outputfile1.txt 的文件。 %j% 在循环开始时展开一次,每次迭代都使用相同的值。使用setlocal enabledelayedexpansion 命令并将%j% 替换为!j! 将强制Windows 为每次迭代扩展!j!。要恢复以前的环境设置,应发出匹配的endlocal 命令。

setlocal enabledelayedexpansion
set /a j=1
for %%i in (*.tif) do (
tesseract %%i output_file!j!
set /a j+=1
)
endlocal

我在 Microsoft Windows 7 家庭高级版上成功测试了这一点。希望对你有帮助。

【讨论】:

当我执行第一个和第二个示例时,我在意外标记 `(' '' 附近得到一个错误''syntax error。它是什么?【参考方案3】:
for %i in (*.tif) do (tesseract %i stdout 1>> out.txt)

将找到所有 tif 文件并将标准输出通过管道传输到目标 out.txt

【讨论】:

【参考方案4】:
dir "folder_path\*.tif" /s /b > "folder_path\input.txt"
"tesseract_path\tesseract" "folder_path\input.txt" "folder_path\output"

【讨论】:

以上是关于如何从命令提示符对同一文件夹中的多个文件进行 tesseract?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用命令“copy/b*.tdl hb1.mp4”对这些*.tdl文件进行合并?

macos 如何批量替换同一名字文件?

xcode 8 xcodebuild 从命令行对多个配置文件进行手动代码签名

outlook附件中的excel时,提示:无法创建文件

ffmpeg 在同一个文件中对一个输入视频流和多个输出视频流进行转码

从命令提示符执行带有多个类路径库的 jar 文件