windows - 如何在 .bat 文件的“for”命令中格式化 Tesseract-OCR 语言设置
问题描述
我是 Windows cmd 和 .bat 以及 Tesseract 的新手。但多亏了这份清单,我已经取得了一些成功。
我的第一个成功是这个 cmd-window 行:
tesseract.exe -l eng+lat+ita D:\TIFs\Convivio.tiff D:\TIFs\Convivio
我的下一个成功是 .bat 文件:
:Start
@Echo off
ECHO.
ECHO This is a batch file
ECHO.
PAUSE
BREAK=ON
Set _SourcePath=D:\temp\TIFs\*.tif
Set _OutputPath=D:\temp\TIFs\
Set _Tesseract="D:\temp\Tesseract-OCR\tesseract.exe"
:Convert
For %%A in (%_SourcePath%) Do Echo Converting "%%A"...... &"D:\temp\Tesseract-OCR\tesseract.exe" "%%A" "%_OutputPath%%%~nA"
PAUSE
:End
Set "_SourcePath="
Set "_OutputPath="
Set "_Tesseract="
现在的问题是如何在 .bat 文件中包含 cmd-window 行中的“-l eng+lat+ita”位。
我从对“For”命令的解释中了解到这是可能的,它指出“ do command ”后面可以跟“ CommandLineOptions ”(即“-l eng+lat+ita”)。
任何帮助将不胜感激......因为我已经为此努力了几个小时......
更新:找到了一个替代方案,但仍然想回答我的问题。
我不知道“FOR”命令可以从 cmd 运行。因此,我在 cmd 窗口中粘贴了以下行:
for %i in (*.tif) do "D:\temp\Tesseract-OCR\tesseract.exe" -l eng+lat+ita "%i" "D:\temp\%~ni"
而且,它奏效了!
不过,正如我所说,如何使用 .bat 文件执行此操作?
解决方案
@ECHO OFF
SETLOCAL
:Start
@Echo off
ECHO.
ECHO This is a batch file
ECHO.
PAUSE
BREAK=ON
Set "_SourcePath=D:\temp\TIFs\*.tif"
Set "_OutputPath=D:\temp\TIFs"
Set "_Tesseract=D:\temp\Tesseract-OCR\tesseract.exe"
:Convert
For %%A in ("%_SourcePath%") Do Echo Converting "%%A"...... &"%_Tesseract%" -l eng+lat+ita "%%A" "%_OutputPath%\%%~nA"
PAUSE
:End
rem Set "_SourcePath="
rem Set "_OutputPath="
rem Set "_Tesseract="
GOTO :EOF
由于我没有该tesseract
实用程序,因此我使用了另一个。正如我对其他实用程序所期望的那样,上述内容对我有用,因此不能保证tesseract
.
通常的做法是启动一个批处理,setlocal
这使得清理工作变得不必要(因此减少rem
了),因为在批处理终止时执行一个隐式endlocal
,将环境恢复到其初始状态。
分配包含引号的值是有效的,但在组合元素时很尴尬。同上用反斜杠终止一个值。我已将您的代码转换为我喜欢的语法。请注意,语法SET "var=value"
(其中 value 可能为空)用于确保分配的值中不包含任何杂散的尾随空格。
它会在你的情况下工作吗?交给你试试。
推荐阅读
- sql - Oracle 中的分组数据
- reactjs - 如何在没有域名(仅 IP)的服务器上使用 nginx 提供 react-create-app 构建?
- reactjs - 使用材质 ui 和 axios 在 heroku 上部署 create-react 应用程序
- html - 网页显示为空白
- matlab - 我们正在制作一个 for 循环,它应该遍历矩阵中的所有行和列
- julia - 如何迭代稀疏数组的非零值
- vba - 创建 Outlook 约会
- c# - Net Core 应用程序可以同时具有存储库和 DAO 数据访问对象模式吗?
- hana - SAP HANA 中带有星形连接的图形计算视图和普通计算视图有什么区别
- java - How can I walk through this recursive binary tree problem?