Edit: myliłem się;)
cmd.exebierze UTF-8, ale trzeba mieć pewność, aby zapisać go bezBOM na początku pliku.
Oto drugi test. Możesz użyć chcp 65001na początku pliku wsadowego.

Plik wsadowy nie może być typu UTF-8. To musi być ASCII. Cmd.exepo prostu nie akceptuje innego formatu. Zrobiłem mały test i możesz użyć swoich postaci, ale to wymaga trochę pracy.
Utwórz plik za test.batpomocą echo Å Ä Ö. Zapisz w formacie ANSI/ASCII. Otwieranie cmd.exei upewnić się, że cmd.exezastosowanie Lucida Console(do wyświetlania znaków Unicode).
Po wpisaniu pliku będą wyświetlane znaki jako stare znaki DOS. Można zobaczyć wykres tłumaczenie tutaj .
Po przejściu na „Windows Ansi” - strona kodowa (tzn. Łacińska Europa Zachodnia) ze chcp 1252znakami są wyświetlane poprawnie. To, czy zostaną przeniesione do odpowiednich narzędzi, zależy od tego narzędzia.
Ale dlaczego tworzysz do tego plik wsadowy? Nie możesz tego po prostu zakodować w VB.net?

Edytuj 2 #:
W ten sposób można ustawić Lucida Consolew cmd.exe:

Są BOMto 3 znaki na początku pliku UTF-8. ( \xEF\xBB\xBF).
W VB.NET byłoby utworzyć plik bezBOM tak:
Dim utf8WithoutBom As New System.Text.UTF8Encoding(False)
'^^^^^'
Using sink As New StreamWriter("Foobar.txt", False, utf8WithoutBom)
sink.WriteLine("...")
End Using