hitman4021
Goto Top

Diverse Fragen zu Batch

Hallo, und zwar habe ich ein paar kleine Fragen zu Batch.

Hallo nochmal ;)

nun gleich zur ersten Frage. wie kann ich in einem Batch Script eine Variable auf mehrere Zeilen Verteilen?
Bei mir schaut das momentan so aus
SET LISTE=cbl.abuseat.org dnsbl.ahbl.org ircbl.ahbl.org virbl.dnsbl.bit.nl blackholes.five-ten-sg.com dnsbl.inps.de ix.dnsbl.manitu.net no-more-funn.moensted.dk combined.njabl.org dnsbl.njabl.org dnsbl.sorbs.net bl.spamcannibal.org bl.spamcop.net sbl.spamhaus.org xbl.spamhaus.org pbl.spamhaus.org dnsbl-1.uceprotect.net ips.backscatterer.org
und das ganze in einer Zeile ist doch sehr unübersichtlich.
Kann ich dies mit Batch auf mehrere Zeilen aufteilen so eine Zeile Pro Begriff?

und mein zweites Problem. Wie bringe ich Batch dazu mir Umlaute richtig anzuzeigen?

Gruß Hitman

Content-ID: 168539

Url: https://administrator.de/contentid/168539

Ausgedruckt am: 25.11.2024 um 01:11 Uhr

Biber
Biber 23.06.2011 um 20:13:34 Uhr
Goto Top
Moin Hitman4021,

Frage 1 kann ich beantworten.
Definiere in deinem Schnipsel die Variable entweder so:
SET "LISTE=cbl.abuseat.org dnsbl.ahbl.org ircbl.ahbl.org virbl.dnsbl.bit.nl blackholes.five-ten-sg.com   
SET "LISTE=%LISTE% dnsbl.inps.de ix.dnsbl.manitu.net no-more-funn.moensted.dk combined.njabl.org   
SET "LISTE=%LISTE% dnsbl.njabl.org dnsbl.sorbs.net bl.spamcannibal.org bl.spamcop.net sbl.spamhaus.org "  
SET "LISTE=%LISTE% xbl.spamhaus.org pbl.spamhaus.org dnsbl-1.uceprotect.net"   

...was zumindest schon lesbarer als vorher wäre,

- oder-
verarbeite die "LISTE", wie du sie ja auch genannt hast, in einer separaten Textdatei jeweils ein Item pro Zeile.
Und verarbeite das mit einer FOR/F-Anweisung im batch - da haben wir so drei bis vier Beispielschnipsel hier im Forum.

Frage 2:
befrag deinen CMD-Prompt oder die Forumssuchmaschine nach "CHCP /?" (CHCP steht für Change Codepage, neudeutsch für Wechseln der Klopapierseite).

Grüße
Biber
Hitman4021
Hitman4021 23.06.2011 um 20:30:11 Uhr
Goto Top
Zitat von @Biber:
Moin Hitman4021,

Frage 1 kann ich beantworten.
Definiere in deinem Schnipsel die Variable entweder so:
> 
> SET "LISTE=cbl.abuseat.org dnsbl.ahbl.org ircbl.ahbl.org virbl.dnsbl.bit.nl blackholes.five-ten-sg.com   
> SET "LISTE=%LISTE% dnsbl.inps.de ix.dnsbl.manitu.net no-more-funn.moensted.dk combined.njabl.org   
> SET "LISTE=%LISTE% dnsbl.njabl.org dnsbl.sorbs.net bl.spamcannibal.org bl.spamcop.net sbl.spamhaus.org "  
> SET "LISTE=%LISTE% xbl.spamhaus.org pbl.spamhaus.org dnsbl-1.uceprotect.net"   
> 

...was zumindest schon lesbarer als vorher wäre,

- oder-
verarbeite die "LISTE", wie du sie ja auch genannt hast, in einer separaten Textdatei jeweils ein Item pro Zeile.
Und verarbeite das mit einer FOR/F-Anweisung im batch - da haben wir so drei bis vier Beispielschnipsel hier im Forum.
Danke

Frage 2:
befrag deinen CMD-Prompt oder die Forumssuchmaschine nach "CHCP /?" (CHCP steht für Change Codepage, neudeutsch
für Wechseln der Klopapierseite).
Habe jetzt ein paar chcp versucht allerdings ohne erfolg welches ist der richtige?

Gruß Hitman
Vierus
Vierus 23.06.2011 um 20:33:50 Uhr
Goto Top
Hallo Jungs
Ähmm Biber was ist CHCP /? die Anleitung in der CMD ist ja mal fürs Klopapier.

Mit Umlaute meiste bestimmt Ä Ö Ü und so weiter, dafür gibts tools wie dieses nette kleine ding.
(oder google wie gebe ich Umlaute in eine Batch ein)
Zeichen4Konsole.exe
Download: http://www.files.to/get/14422/4opeiccu4r

MfG
Vierus
60730
60730 23.06.2011 um 20:48:35 Uhr
Goto Top
Zitat von @Hitman4021:
Habe jetzt ein paar chcp versucht allerdings ohne erfolg welches ist der richtige?

Hitman4021
Hitman4021 23.06.2011 um 21:04:06 Uhr
Goto Top
Danke das Tool funktioniert super.

noch eine letzte Frage.
Wenn ich per Nslookup einen Namen auflöse kann ich diesen Direkt in eine Variable übergeben ohne das ich eine Temp Datei anlegen muss?

Bei mir schaut das jetzt so aus:
nslookup mx2.delta.co.at  2>Nul | find "Address">>C:\temp.txt&& echo mx2.delta.co.at>>C:\temp.txt  
for /f "tokens=2" %%x in ('more +1 C:\temp.txt') do set ip=%%x   
for /f %%y in ('more +2 C:\temp.txt') do set host=%%y   
Gruß Hitman
60730
60730 23.06.2011 um 21:23:15 Uhr
Goto Top
sorry,

aber kannst du die Frage irgendwie genauer stellen?
Wenn ich per Nslookup einen Namen auflöse kann ich diesen Direkt in eine Variable übergeben ohne das ich eine Temp Datei anlegen muss?

set "variable=www.administrator.de"  
nslookup %variable%

Wann sind die Ferien endlich zuende?
Hitman4021
Hitman4021 23.06.2011 um 21:27:18 Uhr
Goto Top
Zitat von @60730:
sorry,

aber kannst du die Frage irgendwie genauer stellen?
Ja sry und zwar frage ich in meinem Script zuerst einen Server ab
 
set /P SERVER=Bitte geben sie einen Server ein: 
nun möchte ich die Variable Server auflösen und die IP-Adresse des Servers ohne irgendwelche Temp-Datein gleich als %IP% weiter verwenden.

Wann sind die Ferien endlich zuende?
Ich bin kein Schüler

Gruß Hitman
bastla
bastla 23.06.2011 um 21:30:57 Uhr
Goto Top
Hallo Hitman4021!

Eine Umsetzung Deiner oben beschriebenen Vorgangsweise (ip = Token 2 aus Zeile 2 und host = Token 1 aus Zeile 3 ) ohne Temp-Datei könnte etwa so aussehen (ungetestet)
@echo off & setlocal
set "ip="  
set "host="  
for /f "skip=1 tokens=1-2" %%x in ('nslookup mx2.delta.co.at 2^>nul^|find "Address"') do (  
    if not defined ip (
        set "ip=%%y"  
    ) else (
        if not defined host set "host=%%x"  
    )
)

if defined host (
    echo IP: %ip% Host: %host%
) else (
    echo Daten nicht komplett
)
Grüße
bastla

[Edit] Variablenzuweisung auf mehrzeilige Schreibweise geändert [/Edit]
Hitman4021
Hitman4021 28.06.2011 um 19:55:34 Uhr
Goto Top
Danke funktioniert

Gruß Hitman