Edit: я был неправ;)
cmd.exeдействительно принимает UTF-8 , но вы должны быть уверены , чтобы сохранить его безBOM в начале файла.
Вот второй тест. Вы можете использовать chcp 65001в начале вашего пакетного файла.

Пакетный файл не может быть типа UTF-8. Это должен быть ASCII. Cmd.exeпросто не принимает другой формат. Я сделал небольшой тест, и вы можете использовать своих персонажей, но это требует некоторой работы.
Сделайте файл test.batс echo Å Ä Ö. Сохраните его в формате ANSI/ASCII. Откройте cmd.exeи убедитесь, что вы cmd.exeиспользуете Lucida Console(для отображения символов Unicode).
Когда вы набираете файл, он будет отображать символы как старые DOS-символы. Вы можете увидеть таблицу перевода здесь .
При переключении на «Windows Ansi» - кодовая страница (т.е. западноевропейская латиница) с chcp 1252символами отображается корректно. Если они также будут переведены в их соответствующие утилиты, зависит от этой утилиты.
Но почему вы создаете пакетный файл для этого? Вы не можете просто написать код на VB.net?

Изменить 2 #:
Это, как вы установите Lucida Consoleв cmd.exe:

Это BOM3 символа в начале файла UTF-8. ( \xEF\xBB\xBF).
В VB.net вы можете создать файл безBOM , как это:
Dim utf8WithoutBom As New System.Text.UTF8Encoding(False)
'^^^^^'
Using sink As New StreamWriter("Foobar.txt", False, utf8WithoutBom)
sink.WriteLine("...")
End Using