Тут у вас команди echo роблять незовсім те, що, скоріш за все, ви від них очікуєте: перенаправлення на них не діє, бо воно йде після наступної команди, відокремленої амперсандом. Щоб вивід echo йшов у файл, треба або безпосередньо після echo робити перенаправлення, або брати всю серію команд перед перенаправленням у дужки:
echo Komputer S/N : >>%USERPROFILE%\Desktop\test.txt &wmic bios get serialnumber>>%USERPROFILE%\Desktop\test.txt
або
(echo Komputer S/N : &wmic bios get serialnumber)>>%USERPROFILE%\Desktop\test.txt
Схоже, джерелом проблеми є wmic, що генерує свій вивід в utf-16, тоді як echo виводить свої дані в ascii-сумісній формі.
В принципі, можна спробувати робити вивід в utf-16, змінюючи кодову сторінку. Складність у тому, що utf-16 несумісне з ascii, тому перемикання кодових сторінок доведеться робити в кожному рядку:
chcp 1200 & echo some text>>file.txt & chcp 866
chcp 1200 перемикає кодування на utf-16 (див. список кодових сторінок), chcp 866 перемикає на кодову сторінку ДОСівської кирилиці. Якщо друге перемикання кодових сторінок не зробити, батник не зможе прочитати наступні свої рядки, оскільки поточна кодова сторінка вказує, в якому кодуванні обробляти сам батник, а тому воно має лишатись ascii-сумісним. Не впевнений, чи цей фокус спрацює — можливо, там якийсь більш начаклований бубон потрібен.
Або ж можна встановити iconv чи іншу подібну утиліту й перекодовувати вивід wmic з utf-16 у щось більш людське:
wmic bios get serialnumber|iconv -f utf-16 -t cp866>>%USERPROFILE%\Desktop\test.txt
: