Тема: CMD/BAT: генерация пути для временного файла или папки
Функция генерирует и возвращает в переменной окружения «%TemporaryName%» путь для создания временного файла или папки:
@echo off
setlocal enableextensions enabledelayedexpansion
call :GetTemporaryName
echo Temporary name: [%TemporaryName%]
endlocal
exit /b 0
rem ==========================================================================
rem Функция GetTemporaryName()
rem
rem Серый форум / CMD/BAT: генерация пути для временного файла или папки
rem (http://forum.script-coding.com/viewtopic.php?id=6259)
rem ==========================================================================
:GetTemporaryName
setlocal enableextensions enabledelayedexpansion
:NextName
set sTempName=%temp%\temp%random%.tmp
if exist "%sTempName%" goto :NextName
set sProcName=%~0
endlocal & set %sProcName:~4%=%sTempName%
exit /b 0
rem ==========================================================================
В функции использованы идеи из CMD/BAT: возврат значений из процедур через параметры.
Отдельное спасибо smaharbA.