我知道如何在 OS X 终端中使用 Tesseract 处理同一目录中的多个文件。
for i in *.tif ; do tesseract $i outtext; done;
有人有关于如何在运行Windows的计算机上通过命令提示符完成这个任务的建议吗?
我知道如何在 OS X 终端中使用 Tesseract 处理同一目录中的多个文件。
for i in *.tif ; do tesseract $i outtext; done;
有人有关于如何在运行Windows的计算机上通过命令提示符完成这个任务的建议吗?
for i
命令等效的是什么?如果不知道Unix上tesseract命令与Windows的差异,很难给出全面的答案。
在Windows中,您可以使用for
命令对多个文件执行命令。
从命令行开始:
for %i in (*.tif) do tesseract %i outtext
for %%i in (*.tif) do tesseract %%i outtext
for %%i in (*.tif) do tesseract %%i outtext
Tesseract会在每次迭代中覆盖同一个输出文件outtext.txt
。你最终会得到一个单一的文件(outtext.txt
),其中只包含最后一张图片的文本。你需要给每个输出文件取唯一的名称。你可以像下面显示的那样用%%i
替换字符串outtext
。
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 Home Premium版上成功测试了此功能。希望它能对你有所帮助。
for %i in (*.tif) do (tesseract %i stdout 1>> out.txt)
dir "folder_path\*.tif" /s /b > "folder_path\input.txt"
"tesseract_path\tesseract" "folder_path\input.txt" "folder_path\output"
for i in *.tif; do tesseract $i "txtfolder/$i"; done;
这将把所有输出文件放在一个名为txtfolder的文件夹中。 - R.S.for i in *.tif ; do tesseract $i - >> output.txt; done
。 - Paul Chris Jones