Here is the final code.. It was still not deleting files properly.
Code:

CLS
BREAK ON
$sLogin=udfGetUserName()
While $sLogin
NAMEINPUT($sLogin)
udfDoCleanUp($sLogin)
$sLogin=udfGetUserName()
Loop

Function udfGetUserName()
?
?'Enter user login, or nothing to exit: ' GetS $udfGetUserName
EndFunction

Function udfDoCleanUp($sLogin)
?
?"Performing clean-up for '"+$sLogin+"'"+@CRLF
EndFunction

FUNCTION LEAVE()
?
?"Process is complete - press a key"
GET $
QUIT
ENDFUNCTION

FUNCTION NAMEINPUT($name)
;?'INPUT THE USERNAME - e.g. JDOE'
;?'>'
;GETS $name

$hm='\\HOMEDRIVESERVER\Citrix_Homedir\'+$name
$pr='\\HOMEDRIVESERVER\Citrix_Profiles\'+$name

;IF $name=""
; ?"No Input Found, try again"
; SLEEP 2
; EXIT 0
;ENDIF
SERVERS($hm,$pr,$name)
ENDFUNCTION

FUNCTION SERVERS($hm,$pr,$name)
;clean the home dir
IF EXIST($hm)
?'CHECKING Home Drive: '+$hm
;DIRCLEAN($hm,'\'+$filename)
DIRCLEAN($hm)
ENDIF

;clean the profile
IF EXIST($pr)
?'CHECKING Profile: '+$pr
;DIRCLEAN($pr,'\'+$filename)
DIRCLEAN($pr)
ENDIF

; ;build an array
; ?"CHECKING Citrix Servers..."
FOR EACH $i IN Split('01 02 03 05 06 07 08 09')
$srv="\\CITRIXSERVER"+$i+"\admin$$\profiles\"
?"CHECKING Citrix Server for:" $srv+$name
IF EXIST($srv)
DIRCLEAN($srv,$name)
ENDIF
NEXT
ENDFUNCTION
FUNCTION DIRCLEAN($dir,OPTIONAL $flspec)
IF $flspec
$filename = Dir($dir+$flspec+'.*')
ELSE
$filename = Dir($dir+'\*.*')
ENDIF
WHILE $filename<>'' AND @error = 0
IF $flspec
$result = SetFileAttr($dir+$filename,128)
SHELL '%COMSPEC% /C RD /S /Q '+chr(34)+$dir+$filename+chr(34)
ELSE
IF Len($filename)>2
?$dir+'\'+$filename
$result = SetFileAttr($dir+'\'+$filename,128)
DEL $dir+'\'+$filename
IF @ERROR<>0
SHELL '%COMSPEC% /C RD /S /Q '+chr(34)+$dir+'\'+$filename+chr(34)
ENDIF
ENDIF
ENDIF
$filename = Dir()
LOOP
ENDFUNCTION



Thanks,

Kent
_________________________
Utilize these resources:
UDFs (Full List)
KiXtart FAQ & How to's