Looking at this, you can't use $File = "*.*" and expect it to work properly.

Try something like this:
 Code:
Break On

; define array of month names 
$aMonate = Split('x,JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC', ',')

$SPath = 'c:\temp\'			; where the files are...
$DPath = 'C:\Temp\dest\'		; where the files go...

$File = Dir($Path + '*.*')		
; get first file name
While Not @ERROR

  'Processing ' $Path $File ?		; for debugging

  $FileDate  = GetFileTime($File)	
  $FileYear  = SubStr($FileDate,1,4)
  $FileMonth = $aMonate[Val(SubStr($FileDate, 4, 2))]
  $FileDay   = Right('0'+SubStr($FileDate,9,2),2)
  $TypeFound = 0

  $DstDir = $DPath + $FileYear + '\' + $FileMonth + '\' + $FileDay

  ; create the destination directory, if needed
  If Not Exist($DstDir)
    'MD ' $DstDir ?			; for debugging
    MD $DstDir				; create the destination dir
  EndIf

  ; move the file to the destination folder
  'Move ' $Path + $File + ' ' + $DstDir	; for debugging
;  Move $Path + $File $DstDir 		; uncomment for production
   
  $File = Dir()				; get next file name

Loop
I'm not sure where you define "$Type" or why you define "$TypeFound", but the code example here works. Using variables for source and destination eliminates hard-coding and lets you test in one location and make a simple change to put the code into production. Using hard-coded paths means you have to change lots of code to put it in production, making it more difficult to troubleshoot later when you miss just one setting!

I replaced your substring / "almost Mod" code with an array of month names to slightly simplify the process. Note the "x" value in the array as a placeholder for "Month 0". \:\)

Also, you can create the entire destination directory with just one statement - you don't need to build it folder by folder.

Glenn
_________________________
Actually I am a Rocket Scientist! \:D