Benutzer mit den meisten Antworten
System.Diagnostics.Process.Start("dateiHolen.bat") funktioniert nicht

Frage
-
Hi zusammen,
ich habe jetzt inzwischen Tagelang Google rauf und runter gesucht. Habe auch etwas passendes gefunden. Funktioniert aber nicht.
Ich möchte nichts weiter als eine .bat Datei über Visual Studio ausführen.
Dazu nutze ich
System.Diagnostics.Process.Start("dateiHolen.bat")
Er findet die Datei aber einfach nicht. Win32Exception. Die Datei ist aber da. So langsam wird das zum Akt der Verzweifelung. Ich hoffe ihr könnt mir helfen.
Was ich bisher probiert habe:
System.Diagnostics.Process.Start("C:\Dokumente und Einstellungen\MeinName\Eigene Dateien\Visual Studio 2010\Projects\HKGT Beobachterplattform\HKGT Beobachterplattform\dateiHolen.bat")
Ich habe das dann noch mal in C:\temp gepackt:
System.Diagnostics.Process.Start("C:\temp\dateiHolen.bat")
Dann habe ich versucht eine einfache .txt Datei im temp zu öffnen:
System.Diagnostics.Process.Start("C:\temp\test.txt")
Das hat ALLES nicht funktioniert. Habe dann noch einige Sachen probiert die Google mir ausgespuckt hat. War aber auch nicht das wahre.
Vielen Dank für eure Hilfe
Idhaun
- Bearbeitet Idhaun Sonntag, 24. August 2014 20:03
Antworten
-
Hi,
also erstmal würde ich sagen -> falsches Forum, denn mit VB6 hat da ja nichts zu tun.
Was das Escapen angeht, das funktioniert in VB.NET nicht so wie in C#.
Du könntest folgendes versuchen:
myString = System.Text.RegularExpressions.Regex.Unescape(myString)
Ich habe hier auch noch eine Function gefunden von mir mit der du es mal ausprobieren kannst
die Batch aufzurufen.
Public Shared Sub Run_CMD(ByVal Aufruf As String, Optional ByVal WaitforExit As Boolean = True, Optional ByVal hide As Boolean = True) Dim sCmd As String sCmd = Environ("comspec") Dim p As New System.Diagnostics.Process With p If hide Then .StartInfo.WindowStyle = ProcessWindowStyle.Hidden End If .StartInfo.FileName = sCmd .StartInfo.Arguments = " /C " & Aufruf .Start() If WaitforExit Then .WaitForExit() End If End With End Sub
Gruß
Jens
- Als Antwort markiert Idhaun Mittwoch, 24. September 2014 17:50
Alle Antworten
-
Hallo Idhaun,
Eine andere Möglichkeit wäre, die "\"-Zeichen mit "/" oder "\\" zu ersetzen.
Beispiel:System.Diagnostics.Process.Start("C:/temp/Test.bat")
oder
System.Diagnostics.Process.Start("C:\\temp\\Test.bat")
Weitere Informationen über System.Diagnostics.Process.Start finden Sie unter [1] und [2].[1] http://msdn.microsoft.com/de-de/library/53ezey2s(v=vs.110).aspx
[2] http://www.dotnetperls.com/process-vbnet
Viele Grüße
Bo Liu
MSDN-Entwickler-Hotline für MSDN Online Deutschland
Disclaimer:
Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die MSDN-Entwickler-Hotline: http://www.msdn-online.de/Hotline
Es gelten für die MSDN-Entwickler-Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu Markenzeichen, Informationen zur Datensicherheit sowie die gesonderten Nutzungsbedingungen für die MSDN-Entwickler-Hotline.
- Bearbeitet raulliubo Dienstag, 26. August 2014 12:19
-
-
Hi,
Danke für eure Antworten.
Leider funktioniert weder der / noch der \\
Zudem ist es wichtig, dass der Pfad variabel ist, da das Programm später auf anderen PC's ausgeführt werden soll.
Also soll es so aussehen.
System.Diagnostics.Process.Start("dateiHolen.bat")
Ich verstehe nicht, warum es so überhaupt nicht funktionieren will. Aber Danke für eure Mühe. Hat noch jemand eine Idee?
-
Da du den Pfad ja dynamisch erstellen willst nutze doch die Path.Combine Methode.
-
Hi,
also erstmal würde ich sagen -> falsches Forum, denn mit VB6 hat da ja nichts zu tun.
Was das Escapen angeht, das funktioniert in VB.NET nicht so wie in C#.
Du könntest folgendes versuchen:
myString = System.Text.RegularExpressions.Regex.Unescape(myString)
Ich habe hier auch noch eine Function gefunden von mir mit der du es mal ausprobieren kannst
die Batch aufzurufen.
Public Shared Sub Run_CMD(ByVal Aufruf As String, Optional ByVal WaitforExit As Boolean = True, Optional ByVal hide As Boolean = True) Dim sCmd As String sCmd = Environ("comspec") Dim p As New System.Diagnostics.Process With p If hide Then .StartInfo.WindowStyle = ProcessWindowStyle.Hidden End If .StartInfo.FileName = sCmd .StartInfo.Arguments = " /C " & Aufruf .Start() If WaitforExit Then .WaitForExit() End If End With End Sub
Gruß
Jens
- Als Antwort markiert Idhaun Mittwoch, 24. September 2014 17:50