Batch anpassen

Missingno02

Cadet 3rd Year
Registriert
MĂ€rz 2021
BeitrÀge
45
Hallo Gemeinde,

ich habe mir mit Hilfe von der Bing KI eine Batch erstellen lassen:
(hĂ€tte ich auch alleine hinbekommen 😜)

[/CODE]
@Echo off
hostname > info.txt
getmac /fo csv /nh | findstr /v "00-00-00-00-00-00" | findstr /v "02-00-4C-4F-4F-50" | findstr /v "FF-FF-FF-FF-FF-FF" | findstr /v "01-23-45-67-89-AB" > mac.txt
for /f "tokens=1 delims=," %%a in (mac.txt) do set mac=%%a
echo %mac% >> info.txt
del mac.txt
wmic csproduct get uuid | findstr /r "[0-9A-Z]" >> info.txt
wmic bios get serialnumber | findstr /r "[0-9A-Z]" > servicetag.txt
for /f %%a in (servicetag.txt) do set servicetag=%%a
echo %servicetag% >> info.txt
del servicetag.txt
wmic csproduct get name | findstr /r "[0-9A-Z]">> info.txt
echo %time% >> info.txt
ren info.txt %servicetag%.txt
start /max /wait notepad.exe /a %servicetag%.txt
del %servicetag%.txt
exit


das ganze funktioniert an sich auch wie ich möchte
erstellt und öffnet eine txt mit diversen GerÀte Infos und löscht die txt wieder wenn sie geschlossen wird

Die Batch nutze ich als Client Installationshilfe, kann so die Infos durch OneDrive sync kopieren und in die Systeme einpflegen.

Die txt sieht dann zum Beispiel so aus(Daten abgeÀndert):

CFBG00034789
"00-AF-AA-2A-A5-70"
UUID

4C4C6444-0030-8010-3456-B9C04F583333

901DF31
Name

Precision 3630 Tower

7:37:38,99

dort kommen wir dann auf meine Frage:
wie bekomme ich es hin, dass die txt ein wenig besser aussieht ? zb so:

Hostname: CFBG00034789

MAC: 00-AF-AA-2A-A5-70

UUID: 4C4C6444-0030-8010-3456-B9C04F583333

SN: 901DF31

GerÀt: Precision 3630 Tower

erzeugt: 7:37:38,99

habe selbst nicht viel Ahnung was Batches angeht und habe dazu auch keinen Guide gefunden
 
Da ich das ganze selbst nicht Testen kann gebe ich dir eine kurze Hilfe, wie du es selbst anpassen kannst. Der Befehl "echo TEXT" erzeugt eine Ausgabe mit dem Inhalt von Text auf der Konsole. Mit ">> info.txt" wird der Inhalt nun in die Datei info.txt geschrieben.

Wenn du, wie in meinem Nachfolgenden Beispiel dann statt
Bash:
echo %time% >> info.txt
dann
Bash:
echo erzeugt: %time% >> info.txt
schreibst, mĂŒsste er den Text entsprechend anpassen. Vielleicht schaffst du selbst das ja anzupassen.
 
Danke fĂŒr den Hinweis, bei der MAC und Zeit habe ich es geschafft. Beim Rest jedoch nicht, da die Befehle dort anders aussehen. Output ist jetzt:

cfbg005--016
MAC: "C8----D6-0B----05"
UUID

4C4C4----0032-5410------B3C04F514C33

SN: 3---QL3
Name

Latitude 5530

erzeugt: 11:34:10,47
 
Zeig doch bitte mal deinen aktuellen, geÀnderten Code.
Und bitte in Code Tags einschließen!

Code:
[code ]Quellcode[ /code]
(ohne Leerzeichen in den Tags)
 
das hier ist der aktuelle:

Code:
Quellcode[ /code]
@echo off
hostname > info.txt
getmac /fo csv /nh | findstr /v "00-00-00-00-00-00" | findstr /v "02-00-4C-4F-4F-50" | findstr /v "FF-FF-FF-FF-FF-FF" | findstr /v "01-23-45-67-89-AB" > mac.txt
for /f "tokens=1 delims=," %%a in (mac.txt) do set mac=%%a
echo MAC: %mac% >> info.txt
del mac.txt
wmic csproduct get uuid  | findstr /r "[0-9A-Z]" >> info.txt
wmic bios get serialnumber  | findstr /r "[0-9A-Z]" > servicetag.txt
for /f %%a in (servicetag.txt) do set servicetag=%%a
echo SN: %servicetag% >> info.txt
del servicetag.txt
wmic csproduct get name | findstr /r "[0-9A-Z]">> info.txt
echo erzeugt: %time% >> info.txt
ren info.txt %servicetag%.txt
start /max /wait notepad.exe /a %servicetag%.txt
del %servicetag%.txt
exit
[code]Quellcode[ /code]

txt sieht dann so aus:
cfbg005--016
MAC: "C8----D6-0B----05"
UUID

4C4C4----0032-5410------B3C04F514C33

SN: 3---QL3
Name

Latitude 5530

erzeugt: 11:34:10,47
 
Wenn man GPT fragt, wie man gleiches Ziel mit PowerShell erreichen kann, wirst du den Legacy Code Salat los und glĂŒcklicher.

Get-Computerinfo enthÀlt ALLE Informationen bereit und kann sie formatiert ausgeben.

Übrigens lohnt es sich nach MVP Blogs zu suchen, da die sowas schon xmal dokumentiert haben und GPT findet diese fertigen Scripte sicher auch, wenn nicht bei denen dann auf Stackoverflow.

edit: in einer frĂŒheren Version war das Commandlet falsch. Es ist Get-ComputerInfo, nicht Systeminfo

#RadNeuerfinden
 
Zuletzt bearbeitet:
  • GefĂ€llt mir
Reaktionen: Der Lord
Missingno02 schrieb:
das hier ist der aktuelle:
hast es doch fast :):

#1. Zeile 2 zu
Code:
for /f "tokens=* delims= " %%a in ('hostname') do set hname=%%a
echo Hostname: %hname%>>info.txt

#2. Konsequenz in der Umsetzung, du nutzt TXT-Dateien fĂŒr einiges aber nicht fĂŒr UUID und Name. Da auch die entsprechenden Dateien erzeugen und per Loop parsen. Du brauchst alles in Variablen fĂŒr dein Vorhaben ;).

#3. Man könnt sich auch die TXTs sparen und alles in den Loops handhaben.
Beispiel UUID:
Code:
for /f "tokens=* delims= " %%a in ('wmic csproduct get uuid ^| findstr /r "[0-9A-Z]"') do set uuid=%%a

Du mußt den String innerhalb der Klammer in ' setzen und Pipes escapen mit ^|.
 
  • GefĂ€llt mir
Reaktionen: Missingno02
alQamar schrieb:
Wenn schon eine KI Code fĂŒr PowerShell liefern soll - dann Gute Nacht Brain 1.0!
PowerSehll ist so dermaßen umstĂ€ndlich und schwĂŒlstig und teil unlesbar, dass da noch so viel Power sein kann, der Normaluser der da nicht tĂ€glich und um seiner selbst Willen Umgang hat kann sich das nicht merken.

Da erfinde ich gerne RĂ€der neu wenn ich weiß wie die sich drehen.

CN8
 
mae1cum77 schrieb:
hast es doch fast :):

#1. Zeile 2 zu
Code:
for /f "tokens=* delims= " %%a in ('hostname') do set hname=%%a
echo Hostname: %hname%>>info.txt

#2. Konsequenz in der Umsetzung, du nutzt TXT-Dateien fĂŒr einiges aber nicht fĂŒr UUID und Name. Da auch die entsprechenden Dateien erzeugen und per Loop parsen. Du brauchst alles in Variablen fĂŒr dein Vorhaben ;).

#3. Man könnt sich auch die TXTs sparen und alles in den Loops handhaben.
Beispiel UUID:
Code:
for /f "tokens=* delims= " %%a in ('wmic csproduct get uuid ^| findstr /r "[0-9A-Z]"') do set uuid=%%a

Du mußt den String innerhalb der Klammer in ' setzen und Pipes escapen mit ^|.
danke fĂŒr deine Hilfe, es hat nun geklappt:

Rich (BBCode):
@echo off

echo.>>info.txt
echo.>>info.txt

for /f "tokens=* delims= " %%a in ('hostname') do set hname=%%a
echo Hostname: %hname%>>info.txt

echo.>>info.txt

getmac /fo csv /nh | findstr /v "00-00-00-00-00-00" | findstr /v "02-00-4C-4F-4F-50" | findstr /v "FF-FF-FF-FF-FF-FF" | findstr /v "01-23-45-67-89-AB" > mac.txt
for /f "tokens=1 delims=," %%a in (mac.txt) do set mac=%%a
echo MAC: %mac% >> info.txt
del mac.txt

echo.>>info.txt

for /f "tokens=2 delims==" %%i in ('wmic csproduct get uuid /value') do set uuid=%%i
echo UUID: %uuid%>>info.txt

echo.>>info.txt

wmic bios get serialnumber  | findstr /r "[0-9A-Z]" > servicetag.txt
for /f %%a in (servicetag.txt) do set servicetag=%%a
echo SN: %servicetag% >> info.txt
del servicetag.txt

echo.>>info.txt

for /f "tokens=2 delims==" %%i in ('wmic csproduct get name /value') do set typ=%%i
echo Typ: %typ%>>info.txt

echo.>>info.txt
echo.>>info.txt

echo erzeugt: %time% >> info.txt
ren info.txt %servicetag%.txt
start /max /wait notepad.exe /a %servicetag%.txt
del %servicetag%.txt
exit




Hostname: cfbg00356048

MAC: "F4-4B-34-0B-5D-15"

UUID: 176354544-1132-5410-2347-B3C04F511547

SN: 32Tgref4

Typ: Latitude 5530


erzeugt: 15:58:54,67


Die "" bei der MAC muss ich mir noch anschauen, aber das wird ja machbar sein
ErgÀnzung ()

Missingno02 schrieb:
danke fĂŒr deine Hilfe, es hat nun geklappt:

Rich (BBCode):
@echo off

echo.>>info.txt
echo.>>info.txt

for /f "tokens=* delims= " %%a in ('hostname') do set hname=%%a
echo Hostname: %hname%>>info.txt

echo.>>info.txt

getmac /fo csv /nh | findstr /v "00-00-00-00-00-00" | findstr /v "02-00-4C-4F-4F-50" | findstr /v "FF-FF-FF-FF-FF-FF" | findstr /v "01-23-45-67-89-AB" > mac.txt
for /f "tokens=1 delims=," %%a in (mac.txt) do set mac=%%a
echo MAC: %mac% >> info.txt
del mac.txt

echo.>>info.txt

for /f "tokens=2 delims==" %%i in ('wmic csproduct get uuid /value') do set uuid=%%i
echo UUID: %uuid%>>info.txt

echo.>>info.txt

wmic bios get serialnumber  | findstr /r "[0-9A-Z]" > servicetag.txt
for /f %%a in (servicetag.txt) do set servicetag=%%a
echo SN: %servicetag% >> info.txt
del servicetag.txt

echo.>>info.txt

for /f "tokens=2 delims==" %%i in ('wmic csproduct get name /value') do set typ=%%i
echo Typ: %typ%>>info.txt

echo.>>info.txt
echo.>>info.txt

echo erzeugt: %time% >> info.txt
ren info.txt %servicetag%.txt
start /max /wait notepad.exe /a %servicetag%.txt
del %servicetag%.txt
exit




Hostname: cfbg00356048

MAC: "F4-4B-34-0B-5D-15"

UUID: 176354544-1132-5410-2347-B3C04F511547

SN: 32Tgref4

Typ: Latitude 5530


erzeugt: 15:58:54,67


Die "" bei der MAC muss ich mir noch anschauen, aber das wird ja machbar sein
for /f "tokens=* delims= " %%a in ('getmac') do set mac=%%a
echo MAC: %mac%>>info.txt
 
  • GefĂ€llt mir
Reaktionen: mae1cum77
Missingno02 schrieb:
Die "" bei der MAC muss ich mir noch anschauen, aber das wird ja machbar sein
Klar :).
Einfach nach dem Loop:
Code:
set mac=%mac:"=%
das entfernt die AnfĂŒhrungszeichen.
 
  • GefĂ€llt mir
Reaktionen: Missingno02
habe es so gemacht:

Code:
for /f "tokens=* delims= " %%a in ('getmac') do set mac=%%a
echo MAC: %mac%>>info.txt


Vielen Dank dir nochmal :)
 
  • GefĂ€llt mir
Reaktionen: mae1cum77
@Missingno02 hast du dir Get-ComputerInfo mal angesehen?
 
ZurĂŒck
Oben