Попробуйте этот код, чтобы получить во всех случаях фактический путь к рабочему столу:
for /f "tokens=3" %i in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Desktop"') do @set desktop=%i
echo %desktop%
На самом деле путь к рабочему столу можно изменить.Значение хранится в HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Desktop
.
Не забудьте удвоить %
, если вы запустите это в пакетном файле.