Leerzeichen aus einer Variable entfernen
Moinsen,
ich versuche gerade ein Leerzeichen aus einer Variable zu entfernen und es gelingt mir einfach nicht, ich kann das nicht kontrollieren.
Bitte nicht über den Programmierstil beschweren ;)
Es geht um folgende Variablen (Array)
!Status[%i%]!
Schön wäre das entfernen des Leerzeichens gleich beim einlesen, kann ich die Variable nicht um -1 kürzen?
Hier der Teil zum einlesen
Lässt sich natürlich wegen dem Leerzeichen am Ende nicht vergleichen
und die Ausgabe ist in Ihrer Formatierung auch zerstört, da überall zu viele Leerzeichen sind...
Hier noch mein bisheriger Code, es geht um die Abfrage über SNMP von den Festplatten aus dem Raid für Check_MK
ich versuche gerade ein Leerzeichen aus einer Variable zu entfernen und es gelingt mir einfach nicht, ich kann das nicht kontrollieren.
Bitte nicht über den Programmierstil beschweren ;)
Es geht um folgende Variablen (Array)
!Status[%i%]!
Schön wäre das entfernen des Leerzeichens gleich beim einlesen, kann ich die Variable nicht um -1 kürzen?
Hier der Teil zum einlesen
set "i=0"
for /f "tokens=*" %%f in ('SnmpWalk.exe -r:localhost -c:public -os:.1.3.6.1.4.1.231.2.49.1.5.2.1.15 -op:.1.3.6.1.4.1.231.2.49.1.5.2.1.16 -q') do (
set Status[!i!]=%%f & set /a "i+=1" / Batch
)
Lässt sich natürlich wegen dem Leerzeichen am Ende nicht vergleichen
if !Status[%i%]!==3 set "ST=0"
und die Ausgabe ist in Ihrer Formatierung auch zerstört, da überall zu viele Leerzeichen sind...
Hier noch mein bisheriger Code, es geht um die Abfrage über SNMP von den Festplatten aus dem Raid für Check_MK
@echo off
setlocal enabledelayedexpansion
set "i=0"
for /f "tokens=*" %%f in ('SnmpWalk.exe -r:localhost -c:public -os:.1.3.6.1.4.1.231.2.49.1.5.2.1.2 -op:.1.3.6.1.4.1.231.2.49.1.5.2.1.3 -q') do (
set Port[!i!]=%%f & set /a "i+=1"
)
set "i=0"
for /f "tokens=*" %%f in ('SnmpWalk.exe -r:localhost -c:public -os:.1.3.6.1.4.1.231.2.49.1.5.2.1.5 -op:.1.3.6.1.4.1.231.2.49.1.5.2.1.6 -q') do (
set Drive[!i!]=%%f & set /a "i+=1"
)
set "i=0"
for /f "tokens=*" %%f in ('SnmpWalk.exe -r:localhost -c:public -os:.1.3.6.1.4.1.231.2.49.1.5.2.1.6 -op:.1.3.6.1.4.1.231.2.49.1.5.2.1.7 -q') do (
set Vendor[!i!]=%%f & set /a "i+=1"
)
set "i=0"
for /f "tokens=*" %%f in ('SnmpWalk.exe -r:localhost -c:public -os:.1.3.6.1.4.1.231.2.49.1.5.2.1.7 -op:.1.3.6.1.4.1.231.2.49.1.5.2.1.8 -q') do (
set GB[!i!]=%%f & set /a "i+=1"
)
set "i=0"
for /f "tokens=*" %%f in ('SnmpWalk.exe -r:localhost -c:public -os:.1.3.6.1.4.1.231.2.49.1.5.2.1.12 -op:.1.3.6.1.4.1.231.2.49.1.5.2.1.13 -q') do (
set Err[!i!]=%%f & set /a "i+=1"
)
set "i=0"
for /f "tokens=*" %%f in ('SnmpWalk.exe -r:localhost -c:public -os:.1.3.6.1.4.1.231.2.49.1.5.2.1.15 -op:.1.3.6.1.4.1.231.2.49.1.5.2.1.16 -q') do (
set Status[!i!]=%%f & set /a "i+=1" / Batch
)
set "i=0"
for /f "tokens=*" %%f in ('SnmpWalk.exe -r:localhost -c:public -os:.1.3.6.1.4.1.231.2.49.1.5.2.1.17 -op:.1.3.6.1.4.1.231.2.49.1.5.2.1.18 -q') do (
set SN[!i!]=%%f & set /a "i+=1"
)
set "len=!i!"
set "i=0"
set "ST=2"
:loop
if !Status[%i%]!==3 set "ST=0"
if !Status[%i%]!==4 set "ST=0"
if !Status[%i%]!==1 set "Dis=unknow"
if !Status[%i%]!==2 set "Dis=noDisk"
if !Status[%i%]!==3 set "Dis=online"
if !Status[%i%]!==4 set "Dis=ready"
if !Status[%i%]!==5 set "Dis=failed"
if !Status[%i%]!==6 set "Dis=rebuilding"
if !Status[%i%]!==7 set "Dis=hotspareGlobal"
if !Status[%i%]!==8 set "Dis=hotspareDedicated"
if !Status[%i%]!==9 set "Dis=offline"
if !Status[%i%]!==10 set "Dis=unconfiguredFailed"
if !Status[%i%]!==11 set "Dis=formatting"
if !Status[%i%]!==12 set "Dis=dead"
echo !ST! !Port[%i%]! - Status: !Status[%i%]!\\nAnzeigename: !Vendor[%i%]!\\nTyp: !Drive[%i%]!\\nSeriennummer: !SN[%i%]!\\nGröße: !GB[%i%]! GB\\nFehler: !Err[%i%]!
set /a "i+=1"
if %i% neq %len% goto:loop
endlocal
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 384001
Url: https://administrator.de/contentid/384001
Ausgedruckt am: 25.11.2024 um 14:11 Uhr
8 Kommentare
Neuester Kommentar
freut mich!
Du solltest dir aber wirklich mal die PS ansehen. Damit geht einem sowas erheblich leichter von der Hand.
Du solltest dir aber wirklich mal die PS ansehen. Damit geht einem sowas erheblich leichter von der Hand.