@echo off
for %%j in (*.pdf) do (
java -jar pdfbox-app-1.7.1.jar PDFToImage %%j
)
if exist *.jpg (
for %%i in (*.jpg) do (
mkdir %%~ni
tesseract %%i %%~ni.txt
move %%i %%~ni
move %%~ni.txt %%~ni
)
)
所以我有这个基本上转换的命令:
任何人都可以告诉我如何制作它以便将文本文件移动到相应的文件夹中,就像我对图像文件一样吗?所以最后每个文件夹都包含图像文件和文本文件。谢谢!
答案 0 :(得分:2)
为什么不告诉tesseract首先将文件放在正确的位置,以便您不再需要移动它: - )
另外,你真的应该在你的文件名周围加上引号,以防万一你遇到名字中有空格的文件。
@echo off
for %%j in (*.pdf) do (
java -jar pdfbox-app-1.7.1.jar PDFToImage "%%j"
)
if exist *.jpg (
for %%i in (*.jpg) do (
mkdir "%%~ni"
tesseract "%%i" "%%~ni\%%~ni.txt"
move "%%i" "%%~ni"
)
)
如果由于某些奇怪的原因,tessereact坚持将文件放在当前文件夹中,那么请更改当前文件夹。
@echo off
for %%j in (*.pdf) do (
java -jar pdfbox-app-1.7.1.jar PDFToImage "%%j"
)
if exist *.jpg (
for %%i in (*.jpg) do (
mkdir "%%~ni"
pushd "%%~ni"
tesseract "..\%%i" "%%~ni.txt"
popd
move "%%i" "%%~ni"
)
)
答案 1 :(得分:0)
我强烈怀疑tesseraxt非常聪明,并将实际转换作为一个单独的进程启动,然后终止。因此,当批次尝试移动它时,可能无法写入.txt文件。
个人,我试试(航空代码)...
tesseract %%i %%~ni.txt
call :transfer %%~ni
...
...
goto :eof
:transfer
setlocal
set count=6
:tloop
if exist %1.txt move %1.jpg %1&move %1.txt %1&goto :eof
set /a count-=1
:: wait 1 second...
if %count% gtr 0 ping -n 2 127.0.0.1 >nul &goto tloop
echo could not find %1.txt after 6 seconds...
goto :eof