WinFuture-Forum.de: Übersetzung cmd in C# - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Übersetzung cmd in C#


#1 Mitglied ist offline   DarkDeviLw 

  • Gruppe: Mitglieder
  • Beiträge: 1
  • Beigetreten: 13. April 15
  • Reputation: 0

geschrieben 13. April 2015 - 13:22

Hallo zusammen,
ich möchte gerne eine cmd in C# übersetzen:
Inhalt der .cmd Datei:

REM Dieses Script kopiert die original VHD Dateien aus dem Sicherungsordner. Dadurch werden die festplatten wieder hergestellt.
cls
@COLOR 4F
@echo ...
@echo ...
@echo ...
@echo ...
@echo ...
:start
@echo Hiermit werden die images geloescht und neu generiert. Alle bisherigen Aenderungen an den images gehen dabei verloren.

@echo Sind Sie sicher, dass Sie fortfahren wollen ?
@choice /C JNA /M "Druecken Sie [J] fuer Ja, [N] fuer Nein oder [A] fuer Abbrechen."

@if errorlevel 3 goto end
@if errorlevel 2 goto end
@if errorlevel 1 goto write

:write
@del C:\VHDs\*.* /F /Q
@XCOPY C:\NEUVHDs\*.* C:\VHDs\*.*  /Y
@goto fin
:end
@echo Keine Veraenderungen vorgenommen. Vorgang abgebrochen.
pause
 
:fin




Wie wäre das in C#? Habe bisher noch keine .cmd Dateien in C# übersetzt.

Liebe Grüße
0

Anzeige



#2 Mitglied ist offline   Future010 

  • Gruppe: aktive Mitglieder
  • Beiträge: 704
  • Beigetreten: 02. Januar 14
  • Reputation: 69
  • Geschlecht:Männlich

geschrieben 13. April 2015 - 14:28

CMD ist eigentlich keine Sprache aber egal...

Nun denn:

Ich gebe dir hier mal einen Hinweis, dieses Ja Nein Abbrechen, kann man bequem mit einem Switch Case machen, das dient sozusagen als Menü...

Grob in C# implementiert:

class SwitchCase
{
    static void Main(string[] args)
    {
        Console.WriteLine("Druecken Sie [J] fuer Ja, [N] fuer Nein oder [A] fuer Abbrechen.");
	string ZahlalsString = Console.ReadLine();
        switch (ZahlalsString)
        {
            case "J":
                Console.WriteLine("Case 1 ausgewählt...");
				// Anweisungen..
                break;
            case "N":
                Console.WriteLine("Case 2 ausgewählt...");
				// Anweisungen..
                break;
	    case "A":
                Console.WriteLine("Case 3 ausgewählt...");
				// Anweisungen..
                break;
            default:
                Console.WriteLine("default: kann implementiert werden, muss es aber nicht");
                break;
        }
    }
}

Code by Future010


Anweisungen bitte selbst implementieren...
Kleiner Tipp: https://msdn.microso...y/cc148994.aspx

Dieser Beitrag wurde von Future010 bearbeitet: 13. April 2015 - 14:31

Ein(e) Danke(positive Bewertung) für einen guten Beitrag kann nicht schaden ;-) Danke!j Dateien und Ordner Verwaltung by Future010
0

#3 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 13. April 2015 - 18:00

- Ein @echo off am Anfang der Batchdatei spart ein '@' pro Zeile. :)

- Gibt's irgendeinen Grund, das in C# implementieren zu wollen? Rein von der Sache her bietet sich eigentlich Batch/PowerShell für Stapelverarbeitung - und nichts anderes ist dies ja - perfekt an.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#4 Mitglied ist offline   Future010 

  • Gruppe: aktive Mitglieder
  • Beiträge: 704
  • Beigetreten: 02. Januar 14
  • Reputation: 69
  • Geschlecht:Männlich

geschrieben 13. April 2015 - 19:48

@ RalphS

Da stimme ich dir auch zu, es ist eigentlich quatsch dies in eine Hochsprache zu übersetzen. Aber wenn der Fragensteller das gerne möchte... Nur zu...
Ein(e) Danke(positive Bewertung) für einen guten Beitrag kann nicht schaden ;-) Danke!j Dateien und Ordner Verwaltung by Future010
0

#5 Mitglied ist offline   DK2000 

  • Gruppe: Administration
  • Beiträge: 19.794
  • Beigetreten: 19. August 04
  • Reputation: 1.434
  • Geschlecht:Männlich
  • Wohnort:Oben auf dem Berg
  • Interessen:Essen, PC, Filme, TV Serien...

geschrieben 13. April 2015 - 19:53

Ist eine gute Programmierübung. Sollte ich auch mal versuchen.
Ich bin kein Toilettenpapier-Hamster.
---
Ich bin ein kleiner, schnickeldischnuckeliger Tiger aus dem Schwarzwald.
Alle haben mich ganz dolle lila lieb.
0

#6 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 13. April 2015 - 20:03

Ja, okay. In einem akademischen Kontext. Für sowas bin ich natürlich immer zu haben. :imao:

- Zuallererstmal kann - oder zumindest *sollte* man nicht "übersetzen". C# ist um Längen leistungsfähiger als Batch; würde man das einfach 1:1 übernehmen, schadet man sich auch unter den besten Umständen nur.

Daher ist das gesamte Projekt neu aufzurollen:

~ Was ist das Problem?

~ Was möchte ich gerne haben? NB: damit ist NICHT die Programmierebene gemeint, sondern die konzeptuelle.


Soweit ich das aus dem Scriptlet herauslese, geht es darum, im Fehlerfall alle(?) VHD-Images aus einem bestehenden Backup zu restaurieren.

In C# wäre es also eventuell sinnvoll, schon mal vorsichtig auf häufig auftretende Fehler zu prüfen. Ein Konsolenfenster würde ich gleich ganz vermeiden; damit sticht man sich eine ganze Menge der Vorteile von C# gleich wieder aus. Wenn nötig, gibt's MessageBox()en aller Art.

Außerdem wäre es möglicherweise sinnvoll, die "kaputten" VHDs nicht alle blindlings wegzuwerfen. Vielleicht steht ja doch noch was von Wert darin? Das gilt nicht, wenn die Dinger ohnehin regelmäßig weggeschmissen werden sollen.


... Ach ja. Fast vergessen. Mit VHD gehen differentielle Festplattenkonfigurationen. Wie wär's, wenn Du statt Copy+Replace (was Platz benötigt) einfach einen Satz Basis-VHDs anlegst und diese dann mit abgeleiteten VHDs (AVHDs) versiehst?
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0