Você pode percorrer os arquivos .ses
em um diretório por meio de um loop e usar inicie para executar o executável e passar o nome do arquivo .ses
. Dentro do loop por cada iteração você pode usar substituições de variáveis para obter o nome do arquivo .ses
excluindo a extensão.
Você pode passar o nome do arquivo (sem a extensão) como o primeiro argumento ( %~1
) para ligar depois o nome do rótulo da sub-rotina. Esse primeiro argumento poderia ser incorporado em alguma lógica VBScript dinâmica usando sendkeys para digitar a saída desejada .pdf
do > Janela de diálogo Salvar arquivo PDF como .
Por último, use o cscript para executar o VBScript construído dinamicamente para que ele execute os comandos emulados de pressionamento de tecla e manipule o diálogo Windows para ajudar a automatizar ainda mais - ainda é em lote, mas com algumas lógicas nativas do Windows, extensíveis, controláveis e fáceis de entender.
Script (Exemplo de lote)
Nota: Você pode precisar jogar com o timeout /t <#>
para especificar mais ou menos segundos para aguardar, dependendo de quanto tempo uma vez o ses
é lido no exe antes dessa janela de Salvar arquivo PDF como é aberto. O mesmo acontece com o sendkeys TAB <#>
para o número de separadores a serem carregados nessa janela, uma vez que só consegui testar ligeiramente com o Gravar saída de impressão como título e impressora virtual em PDF.
@ECHO ON
SET "WinTitle=Save PDF File As"
SET "sesDir=C:\Folder\sesFiles"
SET "exe=C:\Folder\abc.exe"
FOR %%A IN ("%sesDir%\*.ses") DO (
start "" %exe% -batch "%%~A"
timeout /t 10
CALL :dynVBS "%%~NA"
)
EXIT
:dynVBS
SET TempVBSFile=%temp%\~tmp_SavePDFFileAs_Temp.vbs
IF EXIST "%TempVBSFile%" DEL /F /Q "%TempVBSFile%"
ECHO Set WshShell = WScript.CreateObject("WScript.Shell") >"%TempVBSFile%"
ECHO Wscript.Sleep 900 >>"%TempVBSFile%"
ECHO WshShell.AppActivate "%WinTitle%" >>"%TempVBSFile%"
ECHO Wscript.Sleep 900 >>"%TempVBSFile%"
ECHO WshShell.SendKeys "^a" >>"%TempVBSFile%"
ECHO Wscript.Sleep 500 >>"%TempVBSFile%"
ECHO WshShell.SendKeys "{DEL}" >>"%TempVBSFile%"
ECHO Wscript.Sleep 500 >>"%TempVBSFile%"
ECHO WshShell.SendKeys "%~1.pdf" >>"%TempVBSFile%"
ECHO Wscript.Sleep 500 >>"%TempVBSFile%"
ECHO WshShell.SendKeys "{TAB 3}" >>"%TempVBSFile%"
ECHO Wscript.Sleep 500 >>"%TempVBSFile%"
ECHO WshShell.SendKeys "{ENTER}" >>"%TempVBSFile%"
CSCRIPT //nologo "%TempVBSFile%"
GOTO :EOF