让用户输入所需的文件夹来计算 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进入用户想要处理的目录。
这种方法不可靠,因为如果目录输入错误或不存在,它会产生意想不到的结果。
临时改变目录到用户指定的目标
pushd %1
使用原来的for循环
for %%a in (*.pdf) do {
...
}
Return到原目录
popd
我有一个脚本可以计算 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进入用户想要处理的目录。
这种方法不可靠,因为如果目录输入错误或不存在,它会产生意想不到的结果。
临时改变目录到用户指定的目标
pushd %1
使用原来的for循环
for %%a in (*.pdf) do { ... }
Return到原目录
popd