Fehlerbehandlung in Forschleife mit findstr

Diskutiere Fehlerbehandlung in Forschleife mit findstr im PC Fragen / Probleme Forum im Bereich Sonstiges; Hallo allerseits. ich bin im Begriff eine Batch zu schreiben für die halbautomatische Registrierung unserer PC's. Dazu gibt es ein Verzeichnis...
  • Fehlerbehandlung in Forschleife mit findstr Beitrag #1
C

casu4711

Benutzer
Threadstarter
Dabei seit
13.01.2017
Beiträge
51
Hallo allerseits.

ich bin im Begriff eine Batch zu schreiben für die halbautomatische Registrierung unserer PC's. Dazu gibt es ein Verzeichnis mit Textdateien für jeden PC und den entsprechend für diesen PC zur Verfügung stehenden Volumenlizenzen. Zu erst wird die entsprechende Datei gesucht und jenachdem was für ein BS angegeben wird, wird die Seriennummer rausgelesen. Dieses funktioniert soweit auch schon ganz gut, zumindest wenn Pro und Ent vorhanden sind. Sofern nur eine Pro drin steht und zuvor Ent ausgewählt wurde, steht Seriennummer gefunden (nichts)

Wie kann ich in einem solchen Fall erreichen, dass geschrieben wird, für Ent ist keine vorhanden, bzw. umgekehrt, und dann zurück zur Abfrage, bekomme es einfach nicht hin, die Textzeilen in der txt sehen exemplarisch so aus:

  • Win10 Pro aaaaa-bbbbb-ccccc-ddddd-eeeee
  • Win10 Ent fffff-ggggg-hhhhh-iiiii-jjjjj

Das entsprechend auf das wichtigste gekürzte Listing schaut so aus:

Code:
@ECHO off
SETLOCAL
CD /D %~dp0

:ABFRAGE

SET /p pcname=PC Name:
ECHO Welche Version soll lizensiert werden?
ECHO -------------------------------------------------
ECHO [1] Win Ent  [2] Win pro (1/2)
ECHO -------------------------------------------------
choice /c 12 /M "Ihre Antwort" /N
IF errorlevel 1 SET BS=Win10En
IF errorlevel 2 SET BS=Win10Pro
ECHO %BS%
ECHO %BS% > %~dp0\tmp\BS.txt
ECHO.
PAUSE
CLS

ECHO %bs%

ECHO Zusammenfassung
ECHO ............................
ECHO Sie haben folgendes gewaehlt:
ECHO PC-Name: %pcname%
ECHO Betiebssystem: %bs%

ECHO -------------------------------------------------
ECHO Alles korrekt? (j/n)
ECHO -------------------------------------------------
ECHO.
choice /c jn /M "Ihre Antwort" /N
IF errorlevel 2 goto Abfrage
ECHO.
CLS

:REGISTRIERUNG

ECHO %BS%
::PCname aus pcname.txt holen

cd c:\>nul 2>&1
cd c:\LIZ>nul 2>&1

FOR /F "tokens=*" %%F IN ('findstr /S /M /C:"%pcname%" *') DO (
  SET "dat=%%F"
)
ECHO %Dat%
Pause

IF %BS%==Win10En (
   FOR /F "tokens=4" %%F IN ('findstr /C:"Win10 Ent" %dat%') DO (
   SET "dat2=%%F"  
  )
)

IF %bs%==Win10Pro (
  FOR /F "tokens=4" %%F IN ('findstr /C:"Win10 Pro" %dat%') DO (
   SET "dat2=%%F"
  )

) ELSE (
echo bla
)

ECHO Seriennummer gefunden: %dat2%
ECHO.
ECHO Lizenzdatei: %dat%
ECHO Lizenzdatei wird verknuepft
PAUSE

würde mich über Hilfestellung sehr freuen,

Danke schon mal und schöne Woche noch
lg
 
Thema:

Fehlerbehandlung in Forschleife mit findstr

Fehlerbehandlung in Forschleife mit findstr - Ähnliche Themen

Variable setzen: Ich habe folgendes kleine Skript, Es wird zunächst gewählt 1 oder 2, danach soll die variable v entweder auf WinEnt oder Win Pro gesetzt werden...
Wert aus CMD Befehl in Wert schreiben: Hallo allerseits, irgendwie stell ich mich wohl gerade zu blöd an, ich versuche aus einer Cmd Abfrage (Net usr Administrator) den Wert Konto...
Zeile in Datei suchen: Hallo, allerseits, ich habe in einem Vereichnis von unseren Rechnern rechnerspezifische Dateien, in denen u.a. auch die Win Lizenznummer steht...
Variable aus findsting: Hallo ich habe ein ziemliches Problem, ich versuche in einem Verzeichnis, die Datei zu finden die einen bestimmten Rechnernamen beinhaltet...
komma getrennte werte in cmd auswetren: Hallo allerseits,, ich habe ein kleines Batchproblem, welches mit Sicherheit ganz einfach zu lösen ist, ich seh nur wieder den Wald vor lauter...

Sucheingaben

forschleife mit findstr

Oben