0

スペースと "(" ")" を含むファイル名でこのバッチ スクリプトを実行するにはどうすればよいですか?

:Start
@Echo off
Set _SourcePath=C:\tifs\*.tif
Set _OutputPath=C:\txts\
Set _Tesseract="C:\Program Files\Tesseract-OCR\tesseract.exe"
:Convert
For /F "usebackq delims=" %%A in (%_SourcePath%) Do Echo Converting %%A...&%_Tesseract% %%A %_OutputPath%%%~nA
:End   
Set "_SourcePath="
Set "_OutputPath="
Set "_Tesseract="
4

2 に答える 2

1

2 つの問題があります。

1) 追加の見積もりが必要です。

2) 間違った形式の FOR を使用しています。あなたのコードは、引用符で囲まれていない IN() 句で /F オプションを使用しています。これは、ファイルの内容を読み取ろうとしますが、名前にワイルドカードが含まれているために機能しない可能性があります。単純な形式の FOR (/F オプションなし) を使用して行うのが最適な .TIF ファイルのリストが必要だと思います。

for %%A in (%_SourcePath%) do echo Converting "%%A"...&%_Tesseract% "%%A" "%_OutputPath%%%~nA"
于 2012-05-07T20:29:35.407 に答える
0

私はそれを次のように変更します:

:Start
@Echo off
SETLOCAL ENABLEEXTENSIONS
SETLOCAL ENABLEDELAYEDEXPANSION
Set _SourcePath=C:\tifs\*.tif
Set _OutputPath=C:\txts\
Set "_Tesseract=C:\Program Files\Tesseract-OCR\tesseract.exe"
:Convert
For /F "usebackq delims=" %%A in (%_SourcePath%) Do Echo Converting %%A...&%_Tesseract% "%%A" "%_OutputPath%%%~nA"
:End   
Set "_SourcePath="
Set "_OutputPath="
Set "_Tesseract="

さて、私の答えはうまくいかないかもしれませんが、それを理解するのに十分なヒントを与えるかもしれないと思います.

于 2012-05-07T20:41:00.083 に答える