Acredito que o que você precisa fazer é alterar o loop FOR no segundo arquivo de lote. O primeiro arquivo de lote cria uma variável local chamada " comando " que contém todos os arquivos passados para o arquivo de lote em uma string, separados por espaços.
No entanto, no seu segundo arquivo de lote, você precisa executar o programa qpdf.exe separadamente para cada arquivo. Para fazer isso, altere o loop FOR para executar o programa qpdf.exe em cada loop:
@echo off
PUSHD "%~dp0"
setlocal enabledelayedexpansion
FOR %%A IN (%*) DO qpdf.exe --linearize %%A "%%~dpnA_Reduced%%~xA"
Em resumo, isso será executado após o DO uma vez para cada string passada para o arquivo em lote.
Além disso, como uma dica para depuração futura, tente colocar REM na frente da instrução @echo off temporariamente. REM é usado para comentar o código e pode melhorar a legibilidade. Isso exibirá cada linha no arquivo em lote à medida que for executada, para que você tenha uma ideia muito melhor do que está acontecendo ao executar.
REM @echo off