Guten Abend Community,
da ich gerade dabei war mir ein Robocopy tool zu programmieren, damit ich es einfach einstellen kann, habe ich folgende Frage:
Wie kann ich die Kodierung bei StreamWriter einstellen?
Bis jetzt sieht mein Quellcode so aus:
Jetzt habe ich aber einen Fehler mit der Kodierung:
Die Ordner sind jetzt nur Beispiele, ist jetzt aber auch egal.
Was mich stört sind diese Zeichen: ╗┐ (box drawings double down and left (U+2557) und box drawings light down and left (U+2510))
Irgendwie stellt sich immer die Kodierung automatisch auf UTF-8 ohne BOM, obwohl sie für Batch ja auf ANSI stehen muss. Wenn ich dies in Notpad++ ändere und speichere, und sie anschließend ausführe (also die .bat Datei),
stellt sich die Kodierung automatisch auf UTF-8 ohne BOM zurück und ergibt wieder den gleichen Fehler.
Wie kann ich jetzt die Batch Datei ohne nervige Kodierungsfehler speichern?
Übriegens: Wenn ich eine Datei normal anlege und dann als .bat / .cmd speichere, ist die Kodierung auch automatisch auf UTF-8 ohne BOM...
Was kann ich da tun? Ich habe schon einen Post über dieses Thema gefunden, aber er hat mir nicht die Frage beantwortet.
Es liegt an der Kodierung, da ich robocopy über Windowstaste + r und cmd normal ausführen kann!
Danke im Vorraus,
Michdi
Gesamter Quellcode:
Spoiler anzeigen
*Topic verschoben*
da ich gerade dabei war mir ein Robocopy tool zu programmieren, damit ich es einfach einstellen kann, habe ich folgende Frage:
Wie kann ich die Kodierung bei StreamWriter einstellen?
Bis jetzt sieht mein Quellcode so aus:
Jetzt habe ich aber einen Fehler mit der Kodierung:
Die Ordner sind jetzt nur Beispiele, ist jetzt aber auch egal.
Was mich stört sind diese Zeichen: ╗┐ (box drawings double down and left (U+2557) und box drawings light down and left (U+2510))
Irgendwie stellt sich immer die Kodierung automatisch auf UTF-8 ohne BOM, obwohl sie für Batch ja auf ANSI stehen muss. Wenn ich dies in Notpad++ ändere und speichere, und sie anschließend ausführe (also die .bat Datei),
stellt sich die Kodierung automatisch auf UTF-8 ohne BOM zurück und ergibt wieder den gleichen Fehler.
Wie kann ich jetzt die Batch Datei ohne nervige Kodierungsfehler speichern?
Übriegens: Wenn ich eine Datei normal anlege und dann als .bat / .cmd speichere, ist die Kodierung auch automatisch auf UTF-8 ohne BOM...
Was kann ich da tun? Ich habe schon einen Post über dieses Thema gefunden, aber er hat mir nicht die Frage beantwortet.
Es liegt an der Kodierung, da ich robocopy über Windowstaste + r und cmd normal ausführen kann!
Danke im Vorraus,
Michdi
Gesamter Quellcode:
VB.NET-Quellcode
- Imports System.IO
- Public Class Form1
- Dim source As String = ""
- Dim dest As String = ""
- Dim robocopy As String = ""
- Dim uname As String = ""
- Dim savefile As String = ""
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- FolderBrowserDialog1.ShowDialog()
- source = FolderBrowserDialog1.SelectedPath.ToString
- TextBox1.Text = source
- End Sub
- Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
- FolderBrowserDialog2.ShowDialog()
- dest = FolderBrowserDialog2.SelectedPath.ToString
- TextBox2.Text = dest
- End Sub
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- uname = Environment.UserName
- End Sub
- Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
- SaveFileDialog1.InitialDirectory = "C:\users\" & uname & "\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
- SaveFileDialog1.ShowDialog()
- savefile = SaveFileDialog1.FileName.ToString
- If CheckBox1.Checked = True Then
- robocopy = "ROBOCOPY " & source & " " & dest & " /E"
- If CheckBox2.Checked = True Then
- robocopy = "ROBOCOPY " & source & " " & dest & " /E /MIR /dcopy:T"
- End If
- End If
- If CheckBox2.Checked = True Then
- robocopy = "ROBOCOPY " & source & " " & dest & " /E /MIR /dcopy:T"
- If CheckBox1.Checked = True Then
- robocopy = "ROBOCOPY " & source & " " & dest & " /E"
- End If
- End If
- Dim objWriter As New System.IO.StreamWriter(savefile, False, System.Text.Encoding.ASCII)
- objWriter.WriteLine(robocopy)
- objWriter.Close()
- End Sub
- End Class
*Topic verschoben*
Die beste maschinelle Übersetzung der Welt - DeepL Übersetzer
Alle Zitate, die ich seit dem 1.9.2017 übersetzt habe, wurden vollautomatisch mit DeepL übersetzt.
Alle Zitate, die ich seit dem 1.9.2017 übersetzt habe, wurden vollautomatisch mit DeepL übersetzt.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()