It depends on how you identify which spool files need to go to which output queue.
If you can determine which output queue is required just by looking at the spool file name, user ID and job name then you can write a CL or RPG routine to do:
a) CRTPF FILE(QTEMP/SPLF132) RCDLEN(132)
b) WRKOUTQ OUTQ(name) OUTPUT(*PRINT)
c) CPYSPLF FILE(QPRTSPLQ) TOFILE(QTEMP/SPLF132) SPLNBR(*LAST)
d) Read through SPLF132 and parse out the fields you’re interested in.
e) Using the fields, determine which output queue you want to transfer the report to and then use the CHGOUTQ command to move it.
If you need to analyse the contents of each report then there are additional steps of creating a second SPLF132 (or a SPLF198, etc) type of file and copying the identified spool file into that before reading it and analysing it.
If you want to copy the file to an output queue rather than move it, then use the SNDNETSPLF command to send the spool file to a “user” with the appropriate outq.
The whole process can be as simple or as complicated as you want to make it, and there are system API’s you can use to find various bits of information that you need.
All the best
Don’t spool reports of system info just to copy into a PF and read back into another program. Why do things the hard and unreliable way when easier and more reliable ways are available?
Just use the QUSLSPL API and process the list from the user space. If finer control becomes necessary, then move up to the Open List API for spooled files. Just start coding the APIs and ask questions as needed. More than enough help is available.