Eu tentei este script que definiu o conteúdo do nome do arquivo como variável "a" e, em seguida, alimentou essa variável "a" como um argumento para o programa "p".
@echo off
for /f "tokens=1 delims={" %%a in ('TYPE filename ^| FINDstr /r "[a-z]"') do (cmd /c p "%%a")
pause
Note que este script tem várias limitações, pois usei a expressão regular no comando findstr supondo que o conteúdo do nome do arquivo seja apenas texto. Eu não sei qual é o conteúdo do seu nome de arquivo, então você precisa modificá-lo para atender às suas necessidades. Além disso, você precisa modificar seu programa "p" para que ele aceite argumentos. Espero que esta ajuda.