Jump to content

Probleme beim Schreiben mit ECHO in Textdatei!


Gast Flipshot
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

Bei uns im Unternehmen wird folgendes Script für die Datensicherung mittels NTBackup verwendet:

 

@Echo Off

 

Set Server=RVRWSV02

 

For /f "delims=" %%i In (C:\NTBackup\Bandzyklus.txt) Do Set Tape=%%i

 

Start /wait NTBackup.exe Backup "@C:\Dokumente und Einstellungen\Administrator\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data\%Server%.bks" /n "%Server% - %Tape%" /d "%Server% (Mo. - Fr. 23:00)" /v:no /r:no /rs:no /hc:on /m normal /j "%Server%.job" /l:s /p "4mm DDS" /um

 

Start /wait Net Stop Wechselmedien

Start /wait Net Start Wechselmedien

RSM Eject /pf"%Server% - %Tape% - 1" /astart

 

If "%Tape%"=="Montag 1" Set NextTape=Dienstag 1

If "%Tape%"=="Dienstag 1" Set NextTape=Mittwoch 1

If "%Tape%"=="Mittwoch 1" Set NextTape=Donnerstag 1

If "%Tape%"=="Donnerstag 1" Set NextTape=Freitag 1

If "%Tape%"=="Freitag 1" Set NextTape=Montag 2

If "%Tape%"=="Montag 2" Set NextTape=Dienstag 2

If "%Tape%"=="Dienstag 2" Set NextTape=Mittwoch 2

If "%Tape%"=="Mittwoch 2" Set NextTape=Donnerstag 2

If "%Tape%"=="Donnerstag 2" Set NextTape=Freitag 2

If "%Tape%"=="Freitag 2" Set NextTape=Montag 1

 

Echo %NextTape% > "C:\NTBackup\Bandzyklus.txt"

 

Das aktuelle Band wird hierbei aus der Datei "Bandzyklus.txt" gelesen und anschließend das Band für den nächsten Tag in der Datei gespeichert. Leider passiert es hierbei des öfteren, dass anstelle des Bandnamens (z. B. Montag 1) immer "ECHO ist ausgeschalten (off)" drin steht. Weiss jemand, warum das der Fall sein könnte, zumal es ja nicht immer passiert.

 

Gruß

 

Flip

Geschrieben

Der Tipp mit dem "Echo on" war gut. Warum kommt man auf so einfach Sachen net selber.

 

Problem war, dass beim Schreiben in die Datei an den Text noch ein Leerzeichen angehangen wird, welches dann am Folgetag mit ausgelesen wird. Beim Vergleich wird nun natürlich ein String mit Leerzeichen mit einem String ohne Leerzeichen am Schluss verglichen, folglich bleibt die Variabel %NextTape% leer und es wird nur ECHO ausgeführt.

 

Gruß

 

Flip

Geschrieben

Das mit dem Echo ist bloß ein Workaround. Das eigentliche Problem läßt sich durch den Ausdruck

 

for /f "tokens=*" %%i In ...

 

lösen. Denn dann steht in der Variablen %%i die gesamte Zeile drin, nicht nur die erste Zeichenfolge bis zum Standardtrenner Leerzeichen. Mit "delims=" ein 'Nicht-Zeichen' als Trenner anzugeben funktioniert nicht.

 

-------------

Gruß, Auer

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...