auto_execok
возвращает список, который передается в exec
в качестве одного аргумента. Вам необходимо расширить список:
exec {*}[auto_execok dir]
пример:
% file mkdir tmp
% cd tmp
% close [open test w]
% exec [auto_execok dir]
couldn't execute "C:\WINNT\system32\cmd.exe \c dir": no such file or directory
% exec {*}[auto_execok dir]
Volume in drive D is Data
Volume Serial Number is ....
Directory of d:\glennj\tmp
2011-09-30 10:08 AM <DIR> .
2011-09-30 10:08 AM <DIR> ..
2011-09-30 10:08 AM 0 test
1 File(s) 0 bytes
2 Dir(s) 77,613,654,016 bytes free