Die Antwort
Wenn Sie die PID von cmd.exe verwenden möchten, gehen Sie folgendermaßen vor:
title=uniqueTitle for /f "tokens=2 USEBACKQ" %f IN (`tasklist /NH /FI "WINDOWTITLE eq uniqueTitle*"`) Do set ourPID=%f i_view64.exe inputfile.jpg /info=%temp%\%ourPID%.txt
Ich wandere, weil ich die Frage nicht verstanden habe:
Im Kontext einer Batch-Datei ist der "aktuelle Prozess" der des Befehlsinterpreters (conhost.exe oder cmd.exe). Wenn Sie die Prozess-ID der i_view64.exe abrufen möchten, müssen Sie sie zuerst ausführen und dann die Prozess-ID (die nicht trivial ist) abrufen. In Ihrem Fall fragen Sie nach der Prozess-ID, bevor sie erstellt wurde. Es gibt keine Möglichkeit vorherzusagen, was es zu dem Zeitpunkt sein wird, an dem Sie dem Prozess ein Befehlszeilenargument zuführen, da es noch nicht gestartet wurde.
Wenn Sie nur einen eindeutigen temporären Dateinamen an einem sicheren und zuverlässigen Ort wünschen, sollten Sie diese Frage prüfen:
https://stackoverflow.com/questions/27802376/create-unique-file-name-windows-batch
Es gibt eine Reihe von Lösungsvorschlägen.
Im Allgemeinen verwenden Sie% TEMP%, um die temporäre Position im System abzurufen. Dann generieren Sie Ihren Dateinamen.
So etwas könnte für Sie funktionieren:
%temp%\%username%-%date%-%random%.txt
Passen Sie nach Bedarf an. Jede dieser Variablen wird erweitert, um einen vollständigen Pfad zu einer Datei zu erstellen.