This alias
  • Loads the fonts to the dialog
  • Calls '/listfonts' if needed

To renew the fontlist from "%SystemRoot%\Fonts", delete or empty font.dat.
Code:
alias load_fonts {
  did -r dialog 15
  if !$lines(font.dat) { listfonts }
  loadbuf -o dialog 15 font.dat
}

This alias
  • Finds the path to the "%SystemRoot%\Fonts" directory
  • Then lists the fontfiles in font.dat
  • Sorts the filenames

It lists filenames though, not fontnames.
Code:
alias listfonts {
  var %a = f. $+ $ticks
  .comopen %a WScript.Shell
  if $comerr { return }
  if $com(%a,ExpandEnvironmentStrings,3,bstr*,% $+ SystemRoot%) && $com(%a).result { noop }
  .comclose %a
  if *% iswm $v1 { return }
  %a = $v2 $+ \Fonts
  .fopen -no fontlist font.dat
  noop $findfile(%a,*.fon;*.ttf,0,.fwrite -n fontlist $nopath($1-))
  .fclose fontlist
  filter -ffctn 1 1 font.dat font.dat
}