.BAT script in C# ausführen mit resource .BAT file

...komplette Frage anzeigen

2 Antworten

Du hast die Datei also schon als eingebettete Resource? Wenn das Programm läuft muss die Datei temporär erstellt werden, um ausgeführt zu werden.

System.Reflection.Assembly myAssembly =     
    System.Reflection.Assembly.GetExecutingAssembly();

Stream streamResource = 
    myAssembly.GetManifestResourceStream
      ("batch_datei_starten.script.bat")

FileStream fileStream = new FileStream("c:\\\\\\\\script.bat", 
    FileMode.Create, FileAccess.Write)

while (true)
{
  byte[] buffer = new byte[1024];
  int readLength = streamResource.Read(buffer, 0, buffer.Length);

  if (readLength < 1)
   break;

  fileStream.Write(buffer, 0, readLength);
}

//Jetzt kannst du die Datei, die im Beispiel unter c:\\\\script.bat 
//erstellt wurde, mit der dir bereits bekannten Weise ausführen

Die BAT-Datei kannst du auch im Verzeichnis erstellen, worin sich die EXE befindet. Oder du erstellst eine temporäre Datei im Windows-Vereichnis. Nach dem Ausführen der BAT-Datei kannst du sie wieder löschen.

Antwort bewerten Vielen Dank für Deine Bewertung

Hey,Toraka

also die .BAT ist "Buildvorgang : Eingebettete Ressource" "In ausgabecverzeichis : Immer kopiere"

hab die BAT in Ressources unter "Dateien - F5" hinzugefügt, "zugriffsmodifizierer : Internal"

Er kopiert die datei nach C:\\\\ aber 0 byte, kein inhalt und keine Win32 anwendung (da kein Text).

Kannst du mir weiterhelfen ?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Toraka
02.10.2011, 21:53

Die BAT-Datei setzt du auf "Eingebette Ressource" und "Nicht kopieren". Weiterhin brauchst du die Datei nur in den Projektzweig hineinziehen, also mit Drag&Drop.

Was du mit F5 und Zugriffsmodifizierern meinst, kann ich überhaupt nicht nachvollziehen. So etwas gibt es bei mir nicht, wenn ich die Eigenschaften der Datei betrachte. Und nur dort musst du etwas einstellen.

0
Kommentar von Toraka
02.10.2011, 21:59

Du siehst doch rechts, oder je nach dem, wohin du es angeordnet hast, den Projektmappen-Explorer, darin die Projektmappe mit

  • Properties
  • Verweise
  • Form1.cs

und anderen Dateien. In diese Projektmappe ziehst du die BAT-Datei hinein oder machst das über Rechtsklick, worauf du "Hinzufügen" wählst, dann "Neues Element" und wählst die Datei auf diese Weise aus, die anschließend mit in der Dateiliste der Projektmappe aufgelistet steht. Die kannst du dann dort markieren und deren Eigenschaften wie beschrieben ändern.

0

Was möchtest Du wissen?