Если у вас есть такая функция, как:
int foo()
{
// more stuff
foo();
}
Затем foo () будет продолжать называть себя, все глубже и глубже, и когда пространство, используемое для отслеживания того, какие функции вы используете, заполненный, вы получаете ошибку переполнения стека.
Это было главной проблемой в PowerShell v1. Версия 2 поставлется с "графической оболочкой", которая исправляет проблему, которая является в конечном счете не с PowerShell, а с хостом консоли Windows (который Cmd.exe также использует). Можно получить текущий CTP для PowerShell v2, если Вы хотите.
На самом деле, PowerShell v2.0 был завершен и поставлен с релизом Windows 7 и Windows Server 2008 R2 в начале августа. Кроме того, бэкпортированные версии (Windows Vista/2008), достиг их этапа Предвыпускной версии просто на днях; Windows XP/Windows Server 2003 должен следовать очень вскоре. Linky linky.
Чтобы сделать это с cmd.exe , вам нужно будет использовать диалоговое окно свойств консоли, чтобы переключиться на шрифт Unicode TrueType.
Затем используйте эти команды:
CHCP 65001
DIR > UTF8.TXT
TYPE UTF8.TXT
Команды:
Символы все еще должны быть поддерживается шрифтом для правильного отображения на консоли.
PowerShell V2 CTP3 внутри Console2 , похоже, делает это. Единственным недостатком является то, что кодировка консоли по умолчанию - UCS-2 LE вместо UTF-8.
Для истинной оболочки попробуйте PowerShell Плюс. Можно выбрать Шрифты юникода и работать с другими языками, не только в редакторе, но и в истинной консоли.
Попробуйте Консоль 2 . Будьте осторожны с конфигурациями цветов/палитры все же. Те - немного багги. Я подтвердил их для не работы; они ведут себя как cmd.exe.
Установка кодовой страницы к UTF-8 с командой "chcp 65001" должна помочь Вам распечатать содержание файла правильно к оболочке (использующий cmd.exe). Это не будет работать на списки каталогов хотя (кодировка UTF-16 в именах файлов NTFS).