Alle IP Nummern in Textfile schreiben
So also folgendes Problem.
Ich möchte die IP-Nummern per script auslesen lassen.
Ich habe im ADS im Logon und im Logoff ein Script ( bzw. ein und dasselbe nur es werden je nach art verschiedene Parameter übergeben ) welches mir den usernamen;computernamen;ip-nummer;datum;uhrzeit;flag für online oder offline in eine Datei schreibt.
Nun kann es sein das ein Computer mehrere IP-Nummern hat. Diese will ich gerne auch mit in die Datei schreiben. Am liebsten wäre mir dieser string
usernamen;computernamen;ipnummer-1,ip-nummer-2,ip-nummer-n;datum;uhrzeit;flag für online oder offline
mein script bisher sieht wie folgt aus
Das Problem was ich habe ist das ich es nicht schaffe die verschiedenen IP-Nummern in irgendeinerweise zu verknüpfen.
In VB oder C oder C++ wäre das kein prob aber es soll halt über den batch passieren.
Gruß
Sven
Ich möchte die IP-Nummern per script auslesen lassen.
Ich habe im ADS im Logon und im Logoff ein Script ( bzw. ein und dasselbe nur es werden je nach art verschiedene Parameter übergeben ) welches mir den usernamen;computernamen;ip-nummer;datum;uhrzeit;flag für online oder offline in eine Datei schreibt.
Nun kann es sein das ein Computer mehrere IP-Nummern hat. Diese will ich gerne auch mit in die Datei schreiben. Am liebsten wäre mir dieser string
usernamen;computernamen;ipnummer-1,ip-nummer-2,ip-nummer-n;datum;uhrzeit;flag für online oder offline
mein script bisher sieht wie folgt aus
@ECHO OFF
REM Überabeparameter welcher angibt ob es sich um ein LOGON oder ein LOGOFF handelt
REM 1 steht für LOGON und 0 für ein LOGOFF
ECHO Argument 1 : %1
ECHO Argument 2 : %2
REM Prüfen ob der Parameter gesetzt wurde, Wenn er gesetzt wurde wird weitergearbeitet falls er nicht gesetzt wurde wird
REM der Batch abgeborchen
IF "%1" == ? GOTO hilfe
IF "%1" == "" GOTO hilfe
IF "%2" == "" GOTO hilfe
IF NOT "%1" =="" set status=%1
IF NOT "%2" =="" set pfadangabe=%2
REM Setzen des monats und des jahres. Diese Daten werden nachher benutzt um den Namen der Datei zu bestimmen in die geschrieben werden soll
SET monat=%date:~-7,2%
SET tag=%date:~-10,2%
set IP=""
REM Ermitteln der IP-Adresse
FOR /F "tokens=2 delims=:" %%i IN ('ipconfig^|FIND "IP-Adresse"') DO SET IP=%%i
REM echo %IP%
REM Löschen der führenden Leerzeichen
SET IP=%IP:~1%
REM Ausgabestring. Hier wird der Ausgabestring erstellt der in die passende Datei geschrieben wird. Der string setzt sich wie eine .csv Datei zusammen.
REM Man kann diese also umnennen um Sie ins Excel zu importieren oder auch direkt in eine DB importieren, da die Delemiter ; sind und ende dees Datensatzes \n
rem echo %pfadangabe%%monat%%tag%
ECHO "%USERNAME%";"%COMPUTERNAME%";"%IP%";%DATE%;%TIME%;%status% >> %pfadangabe%%monat%%tag%.txt
GOTO ende
Rem Hier das Springziel der Hilfe. Kurze erläuterung wie man die Batchdatei aufrufen muss, damit diese funktioniert.
:hilfe
ECHO programm [1=logon oder 0=logoff] [laufwerksbuchstabe:\Ordnername\dateiname ohne dateiendung]
:ende
Das Problem was ich habe ist das ich es nicht schaffe die verschiedenen IP-Nummern in irgendeinerweise zu verknüpfen.
In VB oder C oder C++ wäre das kein prob aber es soll halt über den batch passieren.
Gruß
Sven
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 77842
Url: https://administrator.de/contentid/77842
Ausgedruckt am: 21.11.2024 um 22:11 Uhr
10 Kommentare
Neuester Kommentar
ersetze mal die Zeilen:
REM Ermitteln der IP-Adresse
FOR /F "tokens=2 delims=:" %%i IN ('ipconfig^|FIND "IP-Adresse"') DO SET IP=%%i
REM echo %IP%
REM Löschen der führenden Leerzeichen
SET IP=%IP:~1%
Ducht diese:FOR /F "tokens=2 delims=:" %%i IN ('ipconfig^|FIND "IP-Adresse"') DO SET IP=%%i
REM echo %IP%
REM Löschen der führenden Leerzeichen
SET IP=%IP:~1%
REM Ermitteln der IP-Adressen
set "IP="
FOR /F "tokens=2 delims=:" %%i IN ('ipconfig^|FIND "IP-Adresse"') DO call SET IP=%%IP%%;%%i
REM echo %IP%
REM Löschen des führenden Semikolon
SET IP=%IP:~1%
REM Löschen der führenden Leerzeichen
SET IP=%IP: =%
miniversumset "IP="
FOR /F "tokens=2 delims=:" %%i IN ('ipconfig^|FIND "IP-Adresse"') DO call SET IP=%%IP%%;%%i
REM echo %IP%
REM Löschen des führenden Semikolon
SET IP=%IP:~1%
REM Löschen der führenden Leerzeichen
SET IP=%IP: =%
Dafür müstest du drunter noch das machen:
FOR /F "tokens=2 delims=:" %%i IN ('ipconfig^|FINDSTR "IP Adress"') DO SET IP=!ip!%%i
REM Löschen des führenden Leerzeichen
SET IP=%IP:~1%
REM Leerzeichen durch Komma ersetzen
SET IP=%IP: =,%
oder gleich so:REM Löschen des führenden Leerzeichen
SET IP=%IP:~1%
REM Leerzeichen durch Komma ersetzen
SET IP=%IP: =,%
FOR /F "tokens=2 delims=:" %%i IN ('ipconfig^|FINDSTR "IP Adress"') DO SET IP=!ip!,%%i
REM Löschen des führenden Leerzeichen
SET IP=%IP:~1%
miniversumREM Löschen des führenden Leerzeichen
SET IP=%IP:~1%