Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch Script aus Batch Script erstellen, Probleme beim Escapen

Frage Microsoft Windows Server

Mitglied: RaginRob

RaginRob (Level 1) - Jetzt verbinden

24.02.2011 um 12:48 Uhr, 4758 Aufrufe, 9 Kommentare

Hauptproblem: Wie kann ich mit echo den String %ERRORLEVEL%" ausgeben?

Hallo zusammen,

ich habe den Auftrag bekommen ein Script zu schreiben, mit dem wir auf Server A die Routingtabellen sichern und auf Server B wiederherstellen können. Soweit klappt alles ganz gut, ich hole mir die Routen aus der Registry, konvertiere den Dump nach ASCII, schneide die Überschriften weg etc. Dann parse ich die Routingeinträge Zeile für Zeile in einer FOR Schleife.

Jetzt beginnt das Problem: ich erstelle aus diesem Exportscript heraus in dieser Schleife ein neues Script, welches die Routingeinträge mit route add ausführt. Das funktioniert soweit auch. Das ganze sieht dann so aus:

echo route add %%i mask %%j %%k -p >> routenimport.cmd
routenimport.cmd ist also das Script, das nachher auf dem zweiten Server aufgerufen werden kann. Eine Zeile in diesem Script sieht dann z.B. so aus:

route add 192.168.101.0 mask 255.255.255.0 192.168.168.254 -p
Jetzt möchte ich aber, dass in diesem Importscript überprüft wird, ob die Route erfolgreich gesetzt wurde. Falls dies nicht der Fall ist, soll eine Meldung ausgegeben werden und ein Eintrag in eine Fehlerliste geschrieben werden. Im Importscript müsste also z.B. folgendes stehen:

route add 192.168.101.0 mask 255.255.255.0 192.168.168.254 -p 
IF %ERRORLEVEL% NEQ 0 DO ( 
     echo Route zu Host 192.168.101.0 konnte nicht gesetzt werden! 
     echo Host: 192.168.101.0 Mask: 255.255.255.0 Gateway: 192.168.168.254 >> Fehlerliste.txt 
)
Um diese Zeilen aus dem ersten Script heraus zu generieren, benutze ich folgenden Code (:

echo route add %%i mask %%j %%k -p >> routenimport.cmd 
echo IF %ERRORLEVEL% NEQ 0 DO ( >> routenimport.cmd 
echo  echo Route zu Host %%i konnte nicht gesetzt werden! >> routenimport.cmd 
echo  echo Host: %%i Mask: %%j Gateway: %%k >> Fehlerliste.txt >> routenimport.cmd 
)
Das funktioniert NICHT. Ich schaffe es nicht, dass der String "%ERRORLEVEL%" als ganz normaler Text in das zweite Script geschrieben wird, er wird immer interpretiert und durch eine 0 oder 1 ersetzt. Ich habe versucht, mit ^%ERRORLEVEL% zu escapen, was auch nichts brachte. Abgesehen davon habe ich ein sehr ähnliches Problem in der dritten Zeile, da das erste >> ebenfalls nicht als Text in routenimport.cmd geschrieben wird, sondern den Anfang der Zeile in Fehlerliste.txt schreibt. Ist es überhaupt möglich, das Ganze irgendwie zu escapen?

Hat jemand eine Idee, wie ich das hinkriegen kann? Wenn möglich würde ich das gerne so hinkriegen, dass alles aus dem einen Exportscript heraus funktioniert. Vielen Dank schon mal für Eure Tipps und Ideen!

Grüße, Rob
Mitglied: BigWim
24.02.2011 um 13:12 Uhr
Moin RaginRob

probiere es mal so:

01.
echo IF %%ERRORLEVEL%% NEQ 0 DO
Markus
Bitte warten ..
Mitglied: laster
24.02.2011 um 13:19 Uhr
Hallo,

hab gerade mal getestet:
01.
C:\>echo %date% 
02.
24.02.2011 
03.
 
04.
C:\>echo %%date%% 
05.
%24.02.2011% 
06.
 
07.
C:\>echo ^%date^% 
08.
%date% 
09.
 
sollte helfen.
vG
LS
Bitte warten ..
Mitglied: RaginRob
24.02.2011 um 13:26 Uhr
Whooohaaa, funktioniert! Danke! Gibt's nicht, manchmal sind es echt nur solche Kleinigkeiten. Wie komfortabel und vielseitig ist doch dagegen meine geliebte Bash
Bitte warten ..
Mitglied: RaginRob
24.02.2011 um 13:27 Uhr
Hallo Laster,

danke, das klappt super! Muss man nur erst mal drauf kommen ;-D
Bitte warten ..
Mitglied: BigWim
24.02.2011 um 14:00 Uhr
Moin Laster,

mit dem ^ habe ich es auch erst probiert, aber die Umleitung in eine Datei funktionierte gar nicht. Komisch ....

Markus
Bitte warten ..
Mitglied: laster
24.02.2011 um 14:08 Uhr
Hallo BigWim,

bei mir funktioniert es:
01.
C:\>echo echo ^%date^% > \temp\test.cmd 
02.
 
03.
C:\>\temp\test.cmd 
04.
 
05.
C:\>echo 24.02.2011 
06.
24.02.2011 
07.
 
08.
C:\>
Bitte warten ..
Mitglied: RaginRob
24.02.2011 um 14:14 Uhr
Kleine Ergänzung:

Für ein escaptes Append in eine Datei funktioniert es so:

01.
echo echo Host: %%i   Mask: %%j   Gateway: %%k   dauerhaft: ja ^>^> Fehlerliste.txt >> routenimport.cmd
Bitte warten ..
Mitglied: BigWim
24.02.2011 um 14:16 Uhr
Moin Laster,

danke für Deine Antwort.

Es muß an unseren "Einstellungen" liegen. Auch wenn ich Dein Beispiel 1:1 übernehme, kommt bei mir nur ein "Echo" heraus.

Setze ich das Doppel-% ein erhalte ich auch ein echo %date%.

Mach Dir keine weitere Gedanken!

Markus
Bitte warten ..
Mitglied: BigWim
24.02.2011 um 17:23 Uhr
Die Auflösung des Durcheinanders gibt es hier zu lesen. Interessant!

Markus
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Escape dies Escape das und dann gehts doch nicht
gelöst Frage von MarabuntaBatch & Shell1 Kommentar

hallo, ich will einen wert auf standard zurücksetzen und hab diese zeile in einer batch datei: soll: ists: leider ...

Exchange Server
Script um SIP Adressen zu erstellen
gelöst Frage von SirTobi27Exchange Server13 Kommentare

Hallo zusammen, ich habe folgende Aufgabenstellung: Ich muss für über 500 User SIP-Einträge setzen. Dafür wäre natürlich ein Script ...

Batch & Shell
Benutzer mit Script unter Linux erstellen
gelöst Frage von trallerBatch & Shell4 Kommentare

Hallo, könnt ihr mir kurz mit der Erstellung eines Scripts für die Erstellung von neuen Benutzern helfen? irgendwas ist ...

Erkennung und -Abwehr
IPtables Counting Script erstellen
gelöst Frage von SpeakerSTErkennung und -Abwehr2 Kommentare

Hallo Leute, ich habe eine Frage zu IPtables. Ich habe bei Hetzner einen Debian Server wo ein Apache und ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 8 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 11 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware8 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...