For your edited query, you can use this to let NET pick a free drive letter, then use NET to find out what letter it assigned:
net use * \\server\share
for /f "tokens=2" %%i in ('net use ^| find "\\server\share"') do set netdrive=%%i
echo %netdrive% has been mapped
For details on net use commands, see accepted answer for question Mapping a network drive without hardcoding a drive letter in a batch file.