Вот способ Powershell:
gci -ex "*.xyz" | ?{!$_.PsIsContainer} | ren -new {$_.name + ".txt"}
Или сделать его более многословным и более легким для понимания:
Get-ChildItem -exclude "*.xyz"
| WHere-Object{!$_.PsIsContainer}
| Rename-Item -newname {$_.name + ".txt"}
РЕДАКТИРОВАТЬ: Конечно, нет ничего плохого и в DOS. :)
EDIT2: Powershell поддерживает неявное (и явное в этом отношении) продолжение строки, и, как показано в посте Мэтта Гамильтона, оно облегчает чтение.