Sie können .ses
Dateien in einem Verzeichnis über eine for- Schleife durchlaufen und mit start die ausführbare Datei ausführen und den Dateinamen der .ses
Datei übergeben. Innerhalb der Schleife können Sie für jede Wiederholung Variablensubstitutionen verwenden, um den Dateinamen aus der .ses
Datei mit Ausnahme der Erweiterung abzurufen.
Sie können den Dateinamen (ohne die Erweiterung) als erstes Argument ( %~1
) übergeben, das nach dem Namen der Subroutinenbezeichnung aufgerufen wird . Dieses erste Argument könnte in einige dynamische VBScript-Logik integriert werden, indem mit sendkeys die gewünschte Ausgabe .pdf
aus dem Dialogfenster " PDF-Datei speichern unter" eingegeben wird.
Verwenden Sie schließlich cscript, um das dynamisch erstellte VBScript auszuführen, damit die emulierten Tastatureingabebefehle entsprechend ausgeführt und die Dialogfenster bearbeitet werden, um die weitere Automatisierung zu unterstützen - es ist immer noch Batch, jedoch mit einigen Windows-eigenen erweiterten, steuerbaren und anpassbaren, leicht verständlichen Logiken.
Skript (Batch-Beispiel)
Hinweis: Möglicherweise müssen Sie mit der timeout /t <#>
Taste spielen, um mehr oder weniger Sekunden für die Wartezeit festzulegen. Dies hängt davon ab, wie lange nach dem ses
Einlesen in das Exe das Fenster " PDF-Datei speichern unter" geöffnet wird. Das gleiche gilt sendkeys TAB <#>
für die Anzahl der Registerkarten, die in diesem Fenster gedrückt werden müssen, da ich nur mit dem Befehl "Druckausgabe speichern unter" und dem virtuellen PDF-Drucker etwas testen konnte .
@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 "" >>"%TempVBSFile%" ECHO Wscript.Sleep 500 >>"%TempVBSFile%" ECHO WshShell.SendKeys "%~1.pdf" >>"%TempVBSFile%" ECHO Wscript.Sleep 500 >>"%TempVBSFile%" ECHO WshShell.SendKeys "" >>"%TempVBSFile%" ECHO Wscript.Sleep 500 >>"%TempVBSFile%" ECHO WshShell.SendKeys "" >>"%TempVBSFile%" CSCRIPT //nologo "%TempVBSFile%" GOTO :EOF
Weitere Ressourcen
-
- Variablensubstitutionen (FOR /?)
Darüber hinaus wurde die Ersetzung von FOR-Variablenreferenzen verbessert. Sie können jetzt die folgende optionale Syntax verwenden:
%~I - expands %I removing any surrounding quotes (") %~nI - expands %I to a file name only
- Variablensubstitutionen (FOR /?)
- Auszeit
- Anruf
- sendkeys
- appactivate
- cscript