我是编写批处理文件的新手,但我正在尝试自动执行一些数据更新。我将pdftotext.exe放在一个文件夹中,每个月都有一个pdf文件。我希望在批处理文件中使用通配符,这样我就不必每个月都更改代码。所以现在我跑:
pdftotext -raw -nopgbrk CO_Aug16.pdf
这将使用pdf和可执行文件在同一文件夹中运行转换,但如果我尝试在文件名中使用通配符:
pdftotext -raw -nopgbrk CO*.pdf
它查找以这种方式命名的文件,因此我尝试创建一个名为fname的变量并将通配符放在该名称中,但是当我运行时:
set fname = "C:\Users\...\CO*.pdf"
pdftotext -raw -nopgbrk "%fname%"
它的行为就像是试图打开一个空白文件,我得到:
I/O Error: Couldn't open file ''
我可以使用通配符吗?很抱歉,如果这是一个基本问题,我刚开始学习为该项目编写批处理文件。
答案 0 :(得分:0)
通配符的处理由应用程序完成,而不是由终端完成。
我使用的方法是使用dir *.pdf
查找文件,然后为每个文件调用命令。
for /F "tokens=*" %%f in ('dir /b *.pdf') do pdftotext -raw -nopgbrk "%%~f"
如果您在批处理文件中输入此内容,请使用2个百分号。如果您直接写入cmd
,请使用1。
说明