Creat0R
у меня после отработки твоего также как и моего скрипта на рабочем и домашнем буке кодировки мешаются на виртуалке тоже, но не всегда, бывает что все нормально, из 10 запусков после 2-3 мешаются.
Причем происходит это не случайным образом а в пределах диска, т.е. например все файлы на диске С идут в 1251 а на диске Д уже в 866, может быть и наоборот. Т.е. в одном из циклов случайным образом почему-то не воспринимается команда chcp 1251
По поводу UTF, при использовании 1 + 128 не происходит перекодировки текста, это можно посмотреть в консоли если ее не скрывать, в файл записывается например
Код:

c:\Documents and Settings\Default User\*Ў«®*л\winword.doc
c:\Documents and Settings\Default User\*Ў«®*л\winword2.doc
c:\Documents and Settings\Default User\*Ў«®*л\excel.xls
c:\Documents and Settings\Default User\*Ў«®*л\excel4.xls
c:\Documents and Settings\Default User\*Ў«®*л\powerpnt.ppt
Проблемму решил следующим образом:
Run('%Comspec%
/U /C dir "$d$" /s /b','',0,6)