File Per Batch durchsuchen und editieren

freak1051

Ensign
Registriert
Dez. 2012
Beiträge
197
Hallo Community,

nun habe ich nochmal eine "Automatisierungsaufgabe" Bekommen.

Mit dem VNC-Viewer ist es möglich eine Config VNC.vnc zu erstellen, in der alle Parameter gespeichert sind. Vorallem der Parameter, mit welcher IP er verbinden soll. Wir nutzen Mini PC´s um das HMI einer Maschine zu spiegeln und mittels VNC anzuzeigen. Nun muss man immer in diese .vnc Datei rein (welche sich mit Notepad++ öffnen lässt) und die IP adresse ändern.

Um den Mini PC zu konfigurieren habe ich mittlerweile alles per Batch Automatisiert, dass die Kollegen nur an einer Stelle Infos eingeben müssen und die batch IP Adressen ändert, Energiespareinstellungen ändert etc. Hier würde ich gerne das editieren dieser .vnc einbauen. hat hier jemand eine idee?

dankeschön
 
Warum so kompliziert? Du kannst einfach der vncviewer.exe die IP als Parameter beim Starten mitgeben.

Ansonsten ist das austauschen per Powershell mit einem Dreizeiler erledigt.
 
Das weiß ich, dass ich die mitgeben kann, allerdings haben andere es entscheiden, dass man dies so macht. Hat auch den vorteil dass man dem Kunde eine Configfile schicken kann und der sie austauschen kann. Ist für nen Instandhalter einfacher, wie Übergabeparameter ändern.

hättest mir nen Denkanstoß zu dem 3-Zeiler.
 
Sind die VNC.vnc immer gleich aufgebaut (natürlich bis auf die IP)?
Dann würde ich mit Batch direkt eine vnc-Datei erstellen bzw. den Inhalt überschreiben lassen (ist einfacher, als nach einem bestimmten String suchen zu lassen).
Hierzu müssen allerdings die anderen Einträge der VNC, der Batch-Datei mitgegeben werden.

Beispielhaft ist die test.vnc so aufgebaut:
<IP>
123.abc.456.def

Aufbau der Batch so:
Code:
@echo off
set /p WERT=Bitte IP eingeben : 

echo ^<IP^> > test.vnc
echo %WERT% >> test.vnc

Mit dem Zirkumflex (Taste unter ESC müssen Sonderzeichen maskiert werden)
 
Poste mal eine der VNC Dateien als Beispiel (natürlich gern anonymisiert mit anderen IPs)
 
Code:
[Connection]
Host=192.168.1.13
UserName=52891
Password=XXXXXXXXXXXXXXXX
Encryption=Server
SecurityNotificationTimeout=2500
SelectDesktop=
ProxyServer=
ProxyType=
ProxyUserName=
ProxyPassword=
SingleSignOn=1
[Options]
UseLocalCursor=1
FullScreen=1
RelativePtr=0
FullColour=0
ColourLevel=pal8
PreferredEncoding=ZRLE
AutoSelect=1
Shared=1
SendPointerEvents=1
SendKeyEvents=1
ClientCutText=1
ServerCutText=1
ShareFiles=1
EnableChat=1
EnableRemotePrinting=1
ChangeServerDefaultPrinter=1
PointerEventInterval=0
PointerCornerSnapThreshold=30
Scaling=Fit
MenuKey=F8
EnableToolbar=1
AutoReconnect=1
Protocol3.3=0
AcceptBell=1
ScalePrintOutput=1
PasswordFile=
VerifyId=2
IdHash=
WarnUnencrypted=1
DotWhenNoCursor=1
FullScreenChangeResolution=0
UseAllMonitors=0
Emulate3=0
DisableWinKeys=1
SuppressIME=1
Monitor=

Ausgabe in Notepad++

Im Notepad gibt er mit alles in einer Zeile aus.

Das ist die VNC Datei. Mit der Variante von ryan löscht er mit alles und macht mit hinter das Host ein CarridgeReturn rein...
die default IP ist immer die 192.168.1.13. am liebsten wäre mir eine möglichkeit entweder nach dieser zu suchen und durch eine Variable zu ersetzen oder nach Host= zu suchen und das danach zu ersetzen. Wobei ich die StandartIP auch leer lassen könnte, somit müsste nur geschrieben werden.
 
Die Klammern bewirken beim Schreiben folgendes:
> leert eine Datei und schreibt beginnend den zugehörigen Text rein (hier beginnend mit : [Connection] ). Sprich : der Inhalt einer Datei wird überschrieben.
>> fügt einen Text hinten dran (echo Host=die_IP und der ganze Rest)

Daher ergibt sich:
Code:
@echo off
set /p meineIP=Bitte IP eingeben : 

echo [Connection] > test.vnc
echo Host=%meineIP% >> test.vnc
echo UserName=52891 >> test.vnc
echo der_ganze_Rest_dazwischen >> test.vnc
echo Monitor= >> test.vnc
bitte den ganzen Rest dazwischen einpflegen.

Wenn noch andere Parameter eingegeben werden sollen, entsprechend abändern (beispielhaft das Passwort). Wobei das Passwort mit Sicherheit nicht im Klartext, sondern als Hash-Wert dort drinnen sein wird, oder?
Code:
@echo off
set /p meineIP=Bitte IP eingeben : 
set /p meinPASSWORT=Bitte Passwort eingeben : 

echo [Connection] > test.vnc
echo Host=%meineIP% >> test.vnc
echo UserName=52891 >> test.vnc
echo Password=%meinPASSWORT% >> test.vnc
echo der_ganze_Rest_dazwischen >> test.vnc
echo Monitor= >> test.vnc

Ansonsten, durchsuchen und ersetzen einer bestimmten Zeile. Entsprechend von txt auf vnc abändern.
 
Zuletzt bearbeitet:
Zurück
Oben