45957
Goto Top

Batch: Abfrage zwischen zwei Werten, aber wie?

Hallo,

ich habe ein Problem, unzwar möchte ich mit einer IF Abfrage prüfen ob die letzten 3 Zeichen des Computernamens, was sich hierbei um Ziffern handelt, zwischen zwei werten liegen.

Bspweise.:

Computername001
Computername002

und jetzt soll geprüft werden

IF %computername:~-3% ZWISCHEN 001 und 010 zum Beispiel

Wie ermögliche ich in einer Batch, das man so eine Abfrage machen kann.

Ich hoffe mein Problem ist verständlich.


gruß
dragst3r

Content-Key: 55226

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

Printed on: April 25, 2024 at 00:04 o'clock

Member: bastla
bastla Mar 28, 2007 at 05:56:54 (UTC)
Goto Top
Hallo dragst3r und willkommen im Forum!

Die Vorgangsweise sollte etwa so aussehen:
if %computername:~-3% gtr 010 goto :DerNicht
if %computername:~-3% lss 001 goto :DerNicht
echo Den nehmen wir ...
...
...
goto :eof
:DerNicht
echo Den lassen wir weg ...
goto :eof
Für die Vergleichsoperatoren siehe Hilfe zu "if".

HTH
bastla
Mitglied: 45957
45957 Mar 28, 2007 at 06:32:41 (UTC)
Goto Top
vielen Dank für die Hilfe

ich hatte Probleme irgendeine Brauchbare Hilfe zu If zu finden
Member: Biber
Biber Mar 28, 2007 at 12:18:29 (UTC)
Goto Top
Moin dragst3r,

auch von mir willkommen im Forum und noch ein paar Randbemerkungen.

Falls Du, wie es den Anschein hat, eine Art Gruppenzugehörigkeit aus den %computername%-Endziffern ableitest, solltest Du den Batch von Anfang an möglichst lesbar/pflegbar/wartbar halten.

Dazu noch zwei Tipps.
  • Speichere die Endziffern, die letzten drei Zeichen des Computernamens in einer Variablen. Mindert die Tippfehlerträchtigleit.
  • mache statt bastla's Negativ-Prüfung (wenn Kriterien nicht erfüllt, dann "goto :NixDa") eine Positiv-Prüfung mit "goto :groupX"
Ungetestete Skizze:
:: ----snipp SkizzeLogonSkript.bat
@echo off & setlocal
set "LfdNr=%computername:~-3%"  
if %LfdNr% GEQ 001 if %LfdNr% LEQ 010 goto :Group1
if %LfdNr% GEQ 011 if %LfdNr% LEQ 017 goto :Group2
...
REM wenn bis jetzt keine Bedingung erfüllt war, isset seltsam
Echo %date% %time% Nanu, kann %computername% keiner Gruppe zuordnen?? >>\\EuerServer\EinShare\ClientErrors.log
goto :eof
:group1
....bla
goto :eof

:group2
....blubb
goto :eof

Noch eine Bitte:
Wenn die Frage aus Deiner Sicht beantwortet ist: Den Beiitrag kannst Du auf "gelöst/erledigt" setzen, indem Du dich anmeldest und dann auf den Eröffnungsbeitrag (also die Frage selbst) gehst.
Dort den Button "Editieren" drücken, dann kommen ein paar Kontrollkästchen. Unter anderem "Dieser Beitrag gilt als gelöst".
Der erzeugt den grünen Haken.

Und noch eine Insider-Information für Dich als Newbie im Forum:
Vermeide in Beiträgen zumindest in "Batch & Shell" solche modischen Sprechblasen wie "..., aber wie?"
Aus sicherer Quelle weiss ich, dass der Mod in diesem Bereich immer spitze Bemerkungen dazu macht.

Gruss
Biber
Mitglied: 45957
45957 Mar 28, 2007 at 12:33:17 (UTC)
Goto Top
Vielen Dank erstmal für den freundlichen Empfang.

@Biber:
Was du gesagt hast, hatte ich dann auch schon umgesetzt (Zeichen in einer Variablen und positive Prüfung)


Gruss
dragst3r