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

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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

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

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...