2012-05-07 9 views
0

このバッチスクリプトをファイル名にスペースと "(" ")"を付けて実行するにはどうすればよいですか?ファイル名をスペースで区切り、DOSバッチで

1)あなたは、いくつかの追加の引用符が必要です

: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=" 
+0

FOR/FはDOSではサポートされていませんが、実際にはWindows NTのバッチファイルを意味すると思いますが、DOSでタグ付けしても実際には役に立ちません。 – Anders

答えて

1

あなたは2つの問題があります。

2)FORの形式が間違っています。あなたのコードでは、引用符で囲まれていないIN()のCluaseに/ Fオプションを使用しています。これは、あなたの名前にワイルドカードが含まれているため、うまくいかないファイルの内容を読み込もうとします。私はあなたがFORの単純な形式(/ Fオプションなし)を使って行うのが最善の.TIFファイルのリストを望むと思います。

for %%A in (%_SourcePath%) do echo Converting "%%A"...&%_Tesseract% "%%A" "%_OutputPath%%%~nA" 
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=" 

、私の答えは動作しない場合がありますが、私はそれはあなたにそれを把握するのに十分なヒントを与えるかもしれないと思います。

関連する問題