alforno
Goto Top

Computername per Batch auslesen - Wert in Registry setzen

Hallo,

ich sitze hier vor einer etwas kniffligen Problemstellung.
Ich möchte gerne per batch, aus dem Computernamen des Clients einen Wert auslesen und diesen Wert anschließend in der registry eintragen.
Der Aufbau des Computernamens, ist allgemein immer dieser:

abc000

Die ersten drei Buchstaben sind immer gleich. Dahinter stehen drei Ziffern.
Jetzt würde ich gerne die letzten zwei Ziffern auslesen und als Wert in der registry eintragen.

Ist sowas machbar?
Ich habe leider nur sehr wenig Kenntnisse zu dem Thema.
Freue mich über Antworten.

Gruß
Alforno

Content-Key: 105625

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

Ausgedruckt am: 28.03.2024 um 22:03 Uhr

Mitglied: Biber
Biber 09.01.2009 um 19:24:07 Uhr
Goto Top
Moin Alforno,

Den Teilstring "Computername ab Zeichen 3 in Länge 2" bekommst Du im Batch/am CMD-Prompt so.
%computername:~3,3%

Teste am CMD-Prompt
echo %computername:~3,2%
-oder verwende im Batch -
SET "DerTeilString=%computername:~3,2%"  
echo Jetzt hab ich den Teilstring [%DerTeilString%] inner Variablen...

Eintragen in die Registry am besten mit Reg.exe (Reg /Add ........).
Grüße
Biber
Mitglied: Alforno
Alforno 09.01.2009 um 20:31:57 Uhr
Goto Top
Biber ich danke Dir für die schnelle Antwort.

Jetzt müsste ich den Wert der Variablen ja noch an einer bestimmten Position in meine reg Datei schreiben.
Nämlich genau hier:

[HKEY_LOCAL_MACHINE\SOFTWARE\AGFEO\TSP3\3.0\Lines]
"Tln0"="DerTeilString"

Kann ich den Wert einfach in eine txt schreiben?
Vielleicht kannst du mir ja noch nen Tipp geben.

Danke.

Gruß
Alforno
Mitglied: Biber
Biber 09.01.2009 um 22:39:09 Uhr
Goto Top
Moin Alforno,

Vielleicht kannst du mir ja noch nen Tipp geben.
Hatte ich doch oben schon - vielleicht etwas zu kleine Schriftart gewählt...

Wenn Du also diesen TeilString in einer Variable %DerTeilString% hast, dann kannst Du Reg.exe aufrufen. Ist stardardmäßig ab Win XP dabei.
Der Aufruf müsste dann ungefähr so aussehen
....(ermittle %DerTeilString% wie oben) ..
REG ADD HKLM\SOFTWARE\AGFEO\TSP3\3.0\Lines /v Tln0 /d %DerTeilString% /f
...
Sicherheitshalber nochmal die Hilfe mit "Reg Add /?" am CMD-Prompt befragen.
(auf deutsch: ich hab es jetzt nicht getestet)

Grüße
Biber
Mitglied: Alforno
Alforno 10.01.2009 um 11:37:46 Uhr
Goto Top
Hallo Biber,

danke Dir für die Antwort. Mir war nicht klar, dass ich das direkt in einer bat Datei machen kann.
Ich war davon ausgegangen, dass ich den Wert der Variablen erst in eine .reg schreiben muss und diese dann eintragen.

So ist es ja noch komfortabler.

Ich muss aber leider nochmal nachhaken:
Ich habe mir die Hilfe zu reg.exe nochmal angesehen.

SET "msn=%computername:~4,2%"
REG ADD HKLM\SOFTWARE\AGFEO\TSP3\3.0\Lines /v Tln0 /t REG_SZ /d %msn% /f

Ich habe die zwei Zeilen in eine .bat kopiert. Wenn ich diese am shell aufrufe, dann bekomme ich immer die Fehlermeldung:

Der Befehl #S ist entweder falsch geschrieben oder ...

Ich denke, das ich da etwas falsch mache. Nur was?
Idee?

Gruß
Alforno
Mitglied: bastla
bastla 10.01.2009 um 17:38:37 Uhr
Goto Top
Hallo Alforno!

Die beiden von Dir geposteten Zeilen funktionieren bei mir problemlos ...

Damit Du den Ablauf des Batches besser verfolgen kannst, solltest Du ein ev vorhandenes "echo off" (zum Testen) auf "echo on" ändern - dann wird Dir jeder Befehl vor der Ausführung angezeigt.

Grüße
bastla
Mitglied: Alforno
Alforno 10.01.2009 um 18:27:24 Uhr
Goto Top
HalloBastla,
danke Dir für die Antwort.

Ich glaube wir kommen dem Problem näher.
Ich habe die Zeilen über notepad eingefügt.
Mir scheint es, als wäre das Format der Zeichen falsch. Gibt es hier einen Unterschied.
Hast du vielleicht einen Tipp in die Richtung?

Schönen Gruß
Alforno

Edit: ein vorangestelltes "echo on" ändert an der ausgabe leider nichts.
Edit2: Jetzt habe ich aus lauter Verzweiflung für die .bat Datei den Kompatibilitätsmodus aktiviert und auf Windows 95 gestellt.
Jetzt funktioniert alles einwandfrei. Woran kann das liegen?
Mitglied: bastla
bastla 10.01.2009 um 19:36:33 Uhr
Goto Top
Hallo Alforno!

Mir scheint es, als wäre das Format der Zeichen falsch. Gibt es hier einen Unterschied.
ANSI vs ASCII - allerdings sollte sich dieser Unterschied nicht in der von Dir zitierten Fehlermeldung niederschlagen, sonden sich allenfalls bei Sonderzeichen (die etwa in einem Computernamen ohnehin nichts zu suchen hätten face-wink) auswirken ...
ein vorangestelltes "echo on" ändert an der ausgabe leider nichts.
Das "echo on" sollte nur bedeuten: kein "echo off" - wenn Du letzteres schon vorher nicht hattest, macht's tatsächlich keinen Unterschied.
Jetzt funktioniert alles einwandfrei. Woran kann das liegen?
Das könnte ich bestenfalls beantworten, wenn ich mir den von Dir verwendeten Code (entsprechend ) ansehen könnte ...

Grüße
bastla
Mitglied: Alforno
Alforno 11.01.2009 um 11:25:31 Uhr
Goto Top
Hallo bastla,

ich habe den Fehler gefunden.
Ich habe im Eifer des Gefechts die zwei Zeilen in eine .reg geschrieben und diese dann in eine .bat umbenannt.
Das sollte man lieber nicht tun.

Jetzt klappt alles prima.

Danke euch.

Gruß
Alforno
Mitglied: mjchiphazard
mjchiphazard 19.06.2009 um 10:50:09 Uhr
Goto Top
Hallo Bastla,

könntest Du Dir vielleicht mal mein Posting angucken,bitte?

content=118423

Habe dort ähnliches Problem und Euren Code versucht in meinen einzubauen,
Aber aufgrund meiner totalen VB_Programmierunkenntnisse war ich schon stolz das Pagerfeld auslesen zu können,
bekomme aber die letzte Kurve nicht hin, diese "Variable" in die Registry einzutragen...

Würde mich sehr über Deine Hilfe freuen,

sG
Thomas