marcusnetwork
Goto Top

Batch Befehl aus mehreren Variablen zusammensetzen oder durch das entfernen von Zeilenumbrüche in .txt Dateien erstellen

Hallo zusammen,

ich möchte per Batch Skript den Wert mehrerer Regkeys vergleichen und ggf. korrigieren. Das klappt auch größtenteils. Bei einem Wert muss der Computernamen des PCs auf dem das Skript ausgeführt wird eingesetzt werden. Hierbei benötige ich einen Tipp.

Hier der Wert:

"ini:C:\PFAD\COMPUTERNAME.ini, Variable"

Ich habe schon verschiedenes versucht, wie z.B. den String in 3 Teile zu splitten und in eine Textdatei zu schreiben, so dass ich dort den korrekten Computernamen mit hoastname hinterlegen kann.
Leider schreibt mir das Skript die 3 Teile des Strings in 3 Zeilen, statt in eine. Ich habe lange gesucht und verschiedenes ausprobiert, aber ich habe es nicht geschafft die Zeilenumbrüche per Skript zu entfernen.
Beim anderen Versuch habe ich versucht die 3 Teile des Strings als Variablen zu definieren und anschließend wieder zusammen zu setzen. Sprich

set RegPart1 = "ini:
C:\PFAD\
set RegPart2 = hostname
set RegPart3 = .ini, Variable"

Problem 1:
set RegPart2 = hostname funktioniert nicht. Da hostname nur als Text erkannt wird und als Antwort folgendes Ergebnis rauskommt:

set RegPart2
RegPart2 = hostname

auch %hostname% führt zum selbsten Ergebnis.
Ist aber im Grunde nicht so schlimm, das ich auch direkt Hostname verwenden kann um den Namen zu bekommen.

Problem 2:
ich habe zwar an verschiedenen Stellen gelesen, dass man mehrere Variablen über echo direkt hintereinander ausgeben lassen kann um in meinem Fall den String wieder zusammen zu setzen.

Ergebnis:

echo RegPart1
RegPart1

bzw:

echo RegPart1 hostname RegPart3
RegPart1 hostname RegPart3

Hat jemand eine Idee wie ich den String mit dem passenden Computernamen wieder zusammensetzen kann bzw. den Computernamen in den String bekomme?

Vielen Dank im Voraus.

Marcus

Content-Key: 634196

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

Printed on: May 18, 2024 at 11:05 o'clock

Member: SlainteMhath
Solution SlainteMhath Dec 21, 2020 at 13:18:51 (UTC)
Goto Top
Moin,

versuchs mal mit

%computername%

bzw.

Set Regpart4 = %RegPart1%%Regpart2%%RegPart3%
echo %RegPart4%

lg,
Slainte
Member: emeriks
Solution emeriks Dec 21, 2020 at 13:18:53 (UTC)
Goto Top
Hi,
set RegPart2 = %computername%

E.
Member: MarcusNetwork
MarcusNetwork Dec 21, 2020 at 13:43:36 (UTC)
Goto Top
Hi Slainte und auch emeriks,

danke für eure schnellen Antworten!

mit %computername% klappt es mit dem Computernamen.

Die Idee mit Regpart4 und echo %Regpart4 klappt leider nicht. Siehe Screenshot
skript
Member: Xerebus
Xerebus Dec 21, 2020 at 13:51:59 (UTC)
Goto Top
Repart ist ungleich RegPart
Member: MarcusNetwork
MarcusNetwork Dec 21, 2020 at 14:05:01 (UTC)
Goto Top
Stimmt, aber das habe ich schon vor dem Screenshot korrigiert in meinem Skript. Hier die aktuelle Version des Skripts

set regpart1 = "ini:C:\PFAD\
set regpart2 = %computername%
set regpart3 = .ini, Variable"
set regpart4 = %regpart1%%regpart2%%regpart3%
echo %regpart4%

als Ergebnis bekomme ich folgendes:

Test.bat
set regpart1 = "ini:
C:\PFAD\
set regpart2 = WIN10TEST
set regpart3 = .ini, Variable"
set regpart4 =
echo
ECHO ist eingeschaltet (ON).

Wenn ich über Set regpart4 manuell prüfe was in der Variable steht bekomme ich folgende Antwort:
Regpart4 = %RegPart1%%RegPart2%%RegPart3%

Mit echo %regpart4% erhalte ich folgende Antwort:
%RegPart4%
Member: Xerebus
Solution Xerebus Dec 21, 2020 updated at 20:48:12 (UTC)
Goto Top
Zuviele Leerzeichen.
https://de.wikibooks.org/wiki/Batch-Programmierung:_Erweiterungen_unter_ ...


@echo off
set regpart1= "ini://C:\PFAD\
set regpart2= %computername%
set regpart3= .ini, Variable"
set regpart4= %regpart1%%regpart2%%regpart3%
echo %regpart4%
ECHO 1
ECHO %regpart1%
ECHO 2
ECHO %regpart2%
ECHO 3
ECHO %regpart3%
ECHO 4
echo %regpart4%
ECHO User
echo %username%
ECHO Comp
echo %computername%
pause
Member: MarcusNetwork
MarcusNetwork Dec 22, 2020 at 07:01:02 (UTC)
Goto Top
super vielen Dank!

Jetzt habe ich nur noch eine Kleinigkeit entdeckt. wenn ich echo %regpart4% ausführe, sind Leerzeichen zwischen den 3 Werten. Bekomm ich die auch noch irgendwie weg?

"ini://C:\PFAD\ WIN10TEST .ini, Variable"
Member: emeriks
Solution emeriks Dec 22, 2020 at 07:18:12 (UTC)
Goto Top
set regpart1="ini://C:\PFAD\  
set regpart2=%computername%
set regpart3=.ini, Variable"  
set regpart4=%regpart1%%regpart2%%regpart3%
?
Member: MarcusNetwork
MarcusNetwork Dec 22, 2020 at 07:26:10 (UTC)
Goto Top
danke... sorry für die doofe Frage. Da hätte ich auch selbst drauf kommen können.

Vielen Dank für eure Hilfe!

Schon mal schöne Weihnachten und ein gutes neues Jahr und bleibt gesund!