Очень просто, воспользуемся функцией получения значения переменной окружения:
var s:string;
begin
s:= GetEnvValue('USERPROFILE');
end.
Кстати, список всех переменных окружения можно посмотреть в консоли (cmd.exe), просто набрав команду "SET".

Простой и эффективный бесплатный интерпретируемый скриптовый движок для Windows на базе Pascal
Очень просто, воспользуемся функцией получения значения переменной окружения:
var s:string;
begin
s:= GetEnvValue('USERPROFILE');
end.
Кстати, список всех переменных окружения можно посмотреть в консоли (cmd.exe), просто набрав команду "SET".

{===========================================
Скрипт переносит из пользовательского профиля
все медиа файлы в локальную папку с названием,
равном имени пользователя, под которым тот
залогинился в системе
24.06.2008
Gifer
============================================}
var
trashlog,home,prhome,profile,trash,user,s,st,newdir:string;
i,j:integer;
//Функция удаления имени файла из строкиfunction
function DeleteFileName(s:string):string;
var
st:string;
begin
st:=s;
while st[length(st)]<>'\' do
if st[length(st)]<>'\' then delete(st,length(st),1);
result:=st;
end;
begin
//Диск на котором расположен профиль
prhome:= GetEnvValue('HOMEDRIVE')+'\';
//Папка профиля на сервере
home:= prhome+'profile';
//Папка профиля на локальной машине пользователя
profile:= GetEnvValue('USERPROFILE')+'\';
//Имя текущего пользователя
user:= GetEnvValue('USERNAME');
//Расположение перенесенных файлов из профиля
trash:=profile[1]+':\'+user;
Deletefile(profile[1]+':\Profile_cleaner.txt');
Protocol('Пользователь '+user+' начал работу....','T:\winscript.logs\users.log',true);
//Сканирование локальной папки профиля на наличие "лишних" файлов
ExecuteEX('cmd.exe',' /c dir "'+profile+'*.avi" /s /b /c /a>trash.log', prhome,1);
ExecuteEX('cmd.exe',' /c dir "'+profile+'*.mp3" /s /b /c /a>>trash.log',prhome,1);
ExecuteEX('cmd.exe',' /c dir "'+profile+'*.mp4" /s /b /c /a>>trash.log',prhome,1);
ExecuteEX('cmd.exe',' /c dir "'+profile+'*.wmv" /s /b /c /a>>trash.log',prhome,1);
ExecuteEX('cmd.exe',' /c dir "'+profile+'*.mkv" /s /b /c /a>>trash.log',prhome,1);
ExecuteEX('cmd.exe',' /c dir "'+profile+'*.3gp" /s /b /c /a>>trash.log',prhome,1);
ExecuteEX('cmd.exe',' /c dir "'+profile+'*.wav" /s /b /c /a>>trash.log',prhome,1);
ExecuteEX('cmd.exe',' /c dir "'+profile+'*.wma" /s /b /c /a>>trash.log',prhome,1);
j:=GetTextFileLinesCount(prhome+'trash.log');
if j>0 then begin
Protocol('Пользователь '+user+' собрал мусор','T:\winscript.logs\users.log',true);
createfolder(trash);
AddLineToFile(trash+'\Profile_cleaner.txt','Ниже перечислены медиа файлы,');
AddLineToFile(trash+'\Profile_cleaner.txt','которые были перенесены из Вашего профиля в: '+trash);
AddLineToFile(trash+'\Profile_cleaner.txt','========================================================================');
for i:=1 to j do begin
LoadLineFromFile(prhome+'trash.log',i,s);
//в это условие подставляем название тех папок, которые не нужно просматривать
if (pos(profile+'Local Settings',s)=0) or (pos(profile+'Application Data',s)=0) then begin
s:=strconvert(s,4);
AddLineToFile(trash+'\Profile_cleaner.txt',s);
st:=s;
delete(s,1,length(profile)-1);
newdir:=trash+DeleteFileName(s);
//Удаление файлов с сервера
if FileExists(home+s) then DeleteFile(home+s);
//Перенос на локальный диск "лишних" файлов
ForceFolders(newdir);
MoveFile(st,trash+s,true);
end;
end;
Protocol('Пользователь '+user+' выбросил мусор.','T:\winscript.logs\users.log',true);
MsgBox('Внимание!!!','Ваш профиль был очищен от медиа файлов. Все вопросы к Яндексу :)',1);
Execute(trash+'\Profile_cleaner.txt','','');
end else Protocol('Пользователь '+user+' ничего не нашeл.','T:\winscript.logs\users.log',true);
deletefile(prhome+'trash.log');
end.