Tho*_*lla 5 ocr cmd tesseract batch-file command-prompt
我知道如何使用OS X上的终端在同一目录中Tesseract多个文件。
for i in *.tif ; do tesseract $i outtext; done;
Run Code Online (Sandbox Code Playgroud)
在运行Windows的计算机上的命令提示符下,是否有人对如何执行此操作有建议?
for i命令的 Windows 等价物是什么?与 Windows 相比,如果不确切知道 tesseract 命令在 Unix 上的作用,则很难给出全面的答案。
在 Windows 上,您可以使用该for命令对多个文件执行命令。
从命令行:
for %i in (*.tif) do tesseract %i outtext
Run Code Online (Sandbox Code Playgroud)
在批处理文件中:
for %%i in (*.tif) do tesseract %%i outtext
Run Code Online (Sandbox Code Playgroud)
小智 5
在上面的例子中:
for %%i in (*.tif) do tesseract %%i outtext
Run Code Online (Sandbox Code Playgroud)
outtext.txtTesseract 将为每次迭代写入相同的输出文件。您最终将得到一个outtext.txt仅包含最后一张图像中的文本的文件 ( )。您需要为每个输出文件指定唯一的名称。您可以将字符串替换outtext为%%i如下所示。
for %%i in (*.tif) do tesseract %%i %%i
Run Code Online (Sandbox Code Playgroud)
但是,如果您想要不同的输出文件名,可以使用该set命令分配一个附加变量。然后为每次迭代增加该变量。
set /a j=1
for %%i in (*.tif) do (
tesseract %%i output_file%j%
set /a j+=1
)
Run Code Online (Sandbox Code Playgroud)
但是,%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
Run Code Online (Sandbox Code Playgroud)
我在 Microsoft Windows 7 家庭高级版上成功测试了这一点。我希望它对你有帮助。