PC Name in der Liste dann Update und IP Abfrage
Hi,
Ich Plane zurzeit ein Script das als ersten den PC Namen mit einer TXT vergleichen wenn vorhanden dann soll die IP Adresse Ausgewertet werden und wenn am dritten Oktett eine gewisse Nummer erfolgt soll ein diese Daten Kopieren
Hintergrund:
mehre File Server an unterschiedlichen Standorten daher muss eine IP abfrage kommen von welchem Server die Daten Kopiert werden
die PC Name Abfrage wird benötigt da sich diese Clints immer wieder ändern und nicht alle die Daten Kopieren sollen
Jemand Erfahrung mit so was bzw. vielleicht schon ein Skript oder kann mir helfen ?
Gruß
Ich Plane zurzeit ein Script das als ersten den PC Namen mit einer TXT vergleichen wenn vorhanden dann soll die IP Adresse Ausgewertet werden und wenn am dritten Oktett eine gewisse Nummer erfolgt soll ein diese Daten Kopieren
Hintergrund:
mehre File Server an unterschiedlichen Standorten daher muss eine IP abfrage kommen von welchem Server die Daten Kopiert werden
die PC Name Abfrage wird benötigt da sich diese Clints immer wieder ändern und nicht alle die Daten Kopieren sollen
Jemand Erfahrung mit so was bzw. vielleicht schon ein Skript oder kann mir helfen ?
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 155713
Url: https://administrator.de/contentid/155713
Ausgedruckt am: 22.11.2024 um 19:11 Uhr
15 Kommentare
Neuester Kommentar
moin,
'türlich haben wir sowas schon
Alternativ würde ich aber den ganzen Killefitz nicht veranstalten und das Script auf ein minimum reduzieren.
@bastla. klar, aber bei Ipconfig (hatten wir ja schon mehrmals) kommen "alle" Ips raus, die die Kiste haben kann.
Ping -n 1 %computername% |find "192.168.111" usw usf
Gruß
'türlich haben wir sowas schon
Alternativ würde ich aber den ganzen Killefitz nicht veranstalten und das Script auf ein minimum reduzieren.
if "%logonserver%"=="\\serverstandort1" set bla=blub
if "%logonserver%"=="\\serverstandort2" set bla=blub²
Ping -n 1 %computername% |find "192.168.111" usw usf
Gruß
@bastla:
..."naja" angenommen ich hab einen aktiven Software VPN Tunnel auf dem Notebook, der liefert mir natürlich eine valide Ip vom Standort x.
Obwohl ich in einem ganz anderen "Standort" sitze - das Problem hat man mit dem Logonserver nicht (ok-beim VPN Router, der den Tunnel schon vor dem anmelden offen hat - wärs Jacke wie Hose)
Retour
... und vielleicht ist ja eine dabei, die passt (muss ja ohnehin gegengecheckt werden) - und wenn nicht, dann nicht ...
..."naja" angenommen ich hab einen aktiven Software VPN Tunnel auf dem Notebook, der liefert mir natürlich eine valide Ip vom Standort x.
Obwohl ich in einem ganz anderen "Standort" sitze - das Problem hat man mit dem Logonserver nicht (ok-beim VPN Router, der den Tunnel schon vor dem anmelden offen hat - wärs Jacke wie Hose)
Grüße
bastla
bastla
Retour
Hallo derauserbayerische!
Das ließe sich beides noch etwas komprimierter schreiben:
bzw
wobei es sicherer wäre, %Oktett% vorweg zu löschen und danach ev auf die Existenz der Variablen zu prüfen, also etwa
Grüße
bastla
Das ließe sich beides noch etwas komprimierter schreiben:
FINDSTR /I /x %COMPUTERNAME% "update.txt" && goto :ok
for /f "tokens=2 Delims=" %%i in ('ping -n 1 %computername% -4') do (for /f "tokens=3 delims=." %%j in ("%%i") do set Oktett=%%j)
set "Oktett="
for /f "tokens=2 Delims=" %%i in ('ping -n 1 %computername% -4') do (for /f "tokens=3 delims=." %%j in ("%%i") do set Oktett=%%j)
if not defined Oktett (
echo Keine IP gefunden!
goto :KeineIP
)
bastla
moin,
naja das ist ja auch logisch...
findstr /v "bla" liefert ja immer (ausser die Datei ist nicht vorhanden) einen Errorlevel0 zurück, denn er findet dann ja auch was....
ungetestet
Gruß
naja das ist ja auch logisch...
findstr /v "bla" liefert ja immer (ausser die Datei ist nicht vorhanden) einen Errorlevel0 zurück, denn er findet dann ja auch was....
ungetestet
rem @ECHO OFF
set "Liste=C:\TEMP\update.txt"
set "ListeTemp=%temp%\update.txt"
findstr /i "%COMPUTERNAME%" "%Liste%" && move "%Liste%" "%ListeTemp%"
if exist %ListeTemp% findstr /i /v "%COMPUTERNAME%" "%ListeTemp%">"%Liste%" && goto :ok
:nup
ECHO.
ECHO kein Update
ECHO.
PAUSE
:ok
ECHO.
ECHO Update vorhanden
ECHO.
PAUSE
DEL /F "%temp%\update.txt"
Gruß
Hallo derauserbayerische!
Es ging hier doch nur um das Entfernen aus der Liste, und nicht um die Abfrage, ob noch enthalten ...
[Edit]
@t-mo
einacher:
[/Edit]
Grüße
bastla
[Edit2] Den von T-Mo dankenswerter Weise gespendeten Weihnachtsgansteil an seinen Platz gebracht [/Edit2]
Es ging hier doch nur um das Entfernen aus der Liste, und nicht um die Abfrage, ob noch enthalten ...
[Edit]
@t-mo
einacher:
findstr /i /x "%COMPUTERNAME%" "%Liste%" >nul && (
move "%Liste%" "%ListeTemp%"
findstr /i /x /v "%COMPUTERNAME%" "%ListeTemp%">"%Liste%"
goto :ok
)
Grüße
bastla
[Edit2] Den von T-Mo dankenswerter Weise gespendeten Weihnachtsgansteil an seinen Platz gebracht [/Edit2]
Moin Bastla,
ich hab mal nur gedacht und nicht nachgedacht, dafür aber zur Abwechslung mal "getestet"
Geht bestimmt noch viel einfacher, aber der Bock lag ja an einer Nummer, die immer 0 auswürfelt.
Das wollte ich doch nur aufzeigen.
Ich kaufe mir (hab ich schon und) dir ein paar Füße für die nachträgliche Weihnachtsgans ("%Liste% >nul)
retour
ich hab mal nur gedacht und nicht nachgedacht, dafür aber zur Abwechslung mal "getestet"
Geht bestimmt noch viel einfacher, aber der Bock lag ja an einer Nummer, die immer 0 auswürfelt.
Das wollte ich doch nur aufzeigen.
Ich kaufe mir (hab ich schon und) dir ein paar Füße für die nachträgliche Weihnachtsgans ("%Liste% >nul)
Zitat von @bastla:
Hallo derauserbayerische!
Es ging hier doch nur um das Entfernen aus der Liste, und nicht um die Abfrage, ob noch enthalten ...
[Edit]
@t-mo
einfacher:
Hallo derauserbayerische!
Es ging hier doch nur um das Entfernen aus der Liste, und nicht um die Abfrage, ob noch enthalten ...
[Edit]
@t-mo
einfacher:
findstr /i /x "%COMPUTERNAME%" "%Liste%" >nul && (
move "%Liste%" "%ListeTemp%"
findstr /i /x /v "%COMPUTERNAME%" "%ListeTemp%">"%Liste%"
goto :ok
)
[/Edit]
Grüße
bastla
Grüße
bastla
retour
... obwohl: Eigentlich müsste das ja insgesamt eher so ausehen:
Grüße
bastla
findstr /i /x "%COMPUTERNAME%" "%Liste%" >nul || goto :ok
:nup
ECHO.
ECHO Führe Update durch ...
ECHO.
REM Update
REM Rechner aus der Liste entfernen
move "%Liste%" "%ListeTemp%"
findstr /i /x /v "%COMPUTERNAME%" "%ListeTemp%">"%Liste%"
goto :Ende
:ok
ECHO.
ECHO Update vorhanden
ECHO.
:Ende
PAUSE
bastla