如何从命令提示符中删除同一文件夹中的多个文件?

时间:2015-07-28 15:04:28

标签: batch-file cmd ocr command-prompt tesseract

我知道如何使用OS X上的终端在同一目录中测试多个文件。

for i in *.tif ; do tesseract $i outtext;  done;

有人在运行Windows的计算机上的命令提示符下有关于如何执行此操作的建议吗?

4 个答案:

答案 0 :(得分:2)

Unix for i命令的Windows等价物是什么?

如果不确切知道tesseract命令在Unix上的作用与Windows相比,很难给出全面的答案。

在Windows上,您可以使用for命令对多个文件执行命令。

从命令行:

for %i in (*.tif) do tesseract %i outtext

在批处理文件中:

for %%i in (*.tif) do tesseract %%i outtext

进一步阅读

答案 1 :(得分:2)

在上面的例子中:

for %%i in (*.tif) do tesseract %%i outtext

每次迭代时,Tesseract将在同一输出文件outtext.txt上写入。您最终会得到一个文件(outtext.txt),其中只包含最后一张图片中的文字。您需要唯一地命名每个输出文件。您可以将字符串outtext替换为%%i,如下所示。

for %%i in (*.tif) do tesseract %%i %%i

但是,如果需要不同的输出文件名,可以使用set命令分配其他变量。然后为每次迭代增加此变量。

set /a j=1
for %%i in (*.tif) do (
tesseract %%i output_file%j%
set /a j+=1
)

但是,%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

我在Microsoft Windows 7 Home Premium版上成功测试了这一点。我希望它可以帮助你。

答案 2 :(得分:2)

master

将找到所有tif文件并将stdout传递到目标out.txt

答案 3 :(得分:0)

dir "folder_path\*.tif" /s /b > "folder_path\input.txt"
"tesseract_path\tesseract" "folder_path\input.txt" "folder_path\output"