使用Windows中的Ghostscript将多个PDF文件转换为子目录中的文本文件

时间:2017-08-03 01:45:20

标签: bash pdf for-loop ghostscript extraction

操作系统:Windows 10专业版

我想在Windows命令行上使用GhostScript将多个PDF文件转换为主目录和子目录中的文本文件。以下是我的命令:

gswin64c -sDEVICE=txtwrite -o test1.txt "test1.pdf"

此代码使用Ghostscript将“test1.pdf”转换为“test1.txt”,但我想执行以下操作:

  1. 查找主目录和所有子目录中的所有pdf文件
  2. 对所有PDF文件执行Ghostscript
  3. 为输出文本文件指定相同的文件名。 (test1.pdf - > test1.txt)
  4. 感谢您的时间和对此的考虑!

1 个答案:

答案 0 :(得分:1)

像这样构建批处理或.cmd文件:

@echo off

REM Replace these with your actual location
D:
cd "\Main Directory"

for /R %%F in (*.pdf) do call :DOPDF "%%F"
goto ENDIT

:DOPDF
for %%X in (%1) do set PDF_TXTFNM=%%~dpnX.txt
gswin64c -sDEVICE=txtwrite -o "%PDF_TXTFNM%" %1
goto :EOF

REM Clean up
:ENDIT
set PDF_TXTFNM=

编辑添加:

备注:如果您不希望将工作目录更改为主目录,请注意for /R %%F in ("D:\Main Directory\*.pdf") ...仅在实际 .pdf文件时才有效在D:\Main Directory。两个主要的解决方法是使其成为当前工作目录(在我的示例中选择的解决方案)或强制虚拟.pdf文件存在于该目录中,然后选择不使用{{在子例程中处理它1}}陈述。霍勒,如果你需要后一种技术的例子。