让用户输入所需的文件夹来计算 PDF

Have user input desired folder to count PDF's

我有一个脚本可以计算 PDF 中的页数,不幸的是,它仅限于您放置它的任何文件夹。我想知道我需要添加什么才能让用户能够 select 去哪个目录,这是否可能。

我知道如何提示用户输入,只是不确定如何在此处正确实施...

代码示例:

@echo off
set total=0
for %%a in (*.pdf) do (
   title %%a
   for /f "tokens=2 delims=: " %%b in ('pdftk "%%a" dump_data ^| find "NumberOfPages"') do (
      set /a total+=%%b
   )
)
echo %total%  
pause

使用 batch parameters 修改您的 for 循环。

for %%a in (%1/*.pdf) do {

编辑: 因此,如果第一个参数是“/Documents/work”,那么脚本会将 for 循环视为:

for %a in (/Documents/work/*.pdf) do {
 ...

不要忘记处理没有参数的用例。

另一个不太可靠的选择

使用pushd/popd进入用户想要处理的目录。

这种方法不可靠,因为如果目录输入错误或不存在,它会产生意想不到的结果。

  1. 临时改变目录到用户指定的目标

    pushd %1
    
  2. 使用原来的for循环

    for %%a in (*.pdf) do {
     ...
    }
    
  3. Return到原目录

    popd