Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 在DOS批处理中用空格和()解析文件名_Batch File_Dos - Fatal编程技术网

Batch file 在DOS批处理中用空格和()解析文件名

Batch file 在DOS批处理中用空格和()解析文件名,batch-file,dos,Batch File,Dos,如何在带有空格和“(“”)”的文件名上运行此批处理脚本 您有两个问题: 1) 你需要一些额外的报价 2) 您使用了错误的FOR格式。您的代码将/F选项与一个不带引号的IN()cluase一起使用。这将尝试读取文件的内容,但由于您的名称包含通配符,因此可能无法读取。我认为您需要一个.TIF文件列表,最好使用FOR(no/F选项)的简单形式 我会把它改成这样: :Start @Echo off SETLOCAL ENABLEEXTENSIONS SETLOCAL ENABLEDELAYEDEXPAN

如何在带有空格和“(“”)”的文件名上运行此批处理脚本

您有两个问题:

1) 你需要一些额外的报价

2) 您使用了错误的FOR格式。您的代码将/F选项与一个不带引号的IN()cluase一起使用。这将尝试读取文件的内容,但由于您的名称包含通配符,因此可能无法读取。我认为您需要一个.TIF文件列表,最好使用FOR(no/F选项)的简单形式


我会把它改成这样:

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

现在,我的答案可能不起作用,但我想它可能会给你足够的提示来解决这个问题。

FOR/F在DOS中不受支持,我想你的意思是Windows NT批处理文件,但使用DOS标记并不能真正帮助你解决这个问题。。。
for %%A in (%_SourcePath%) do echo Converting "%%A"...&%_Tesseract% "%%A" "%_OutputPath%%%~nA"
: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="