Ответ
Если вы хотите использовать PID cmd.exe, сделайте следующее:
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
Я бред, потому что я не понял вопроса:
В контексте командного файла «текущий процесс под рукой» - это интерпретатор команд (conhost.exe или cmd.exe). Если вы хотите получить идентификатор процесса для i_view64.exe, вам необходимо сначала запустить его, а затем получить идентификатор процесса (что нетривиально). В вашем случае вы запрашиваете идентификатор процесса до его создания. Невозможно предсказать, что будет, когда вы вводите аргумент командной строки в процесс, так как он еще не запущен.
Если вы просто хотите получить уникальное временное имя файла в безопасном и надежном месте, вам следует проверить этот вопрос:
https://stackoverflow.com/questions/27802376/create-unique-file-name-windows-batch
Есть ряд предлагаемых решений.
Обычно вы используете% TEMP% для получения временного местоположения в системе. Затем вы генерируете свое имя файла.
что-то вроде этого может работать для вас:
%temp%\%username%-%date%-%random%.txt
Отрегулируйте по мере необходимости. Каждая из этих переменных раскрывается, чтобы создать полный путь к файлу.