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
Please also mark the comments that contributed to the solution of the article
Content-Key: 384001
Url: https://administrator.de/contentid/384001
Printed on: April 25, 2024 at 03:04 o'clock
8 Comments
Latest comment
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.