136298
Goto Top

Reg query wert als platzhalter in batch

guten morgen,
da ich gerade eine phase nach input habe wäre ich dankbar wenn ihr mir hierbei helfen könnt vorausgesetzt das kann man in einer batch lösen!

registry:
hkey_local_machine\software\meinprogramm
value-name=flag >> value-data=flagname

die batch soll den registry wert value-date=flagname abfragen und für weiteres als platzhalter dienen.
ich hoffe, dass ich mich verständlich ausgedrückt habe?

Content-Key: 375372

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

Ausgedruckt am: 19.03.2024 um 06:03 Uhr

Mitglied: MrCount
MrCount 29.05.2018 um 13:26:25 Uhr
Goto Top
Servus,

die hilft dir ganz sicher...
Mitglied: 136298
136298 29.05.2018 aktualisiert um 22:21:24 Uhr
Goto Top
die suchfunktion habe ich bereits in anspruch genommen aber einen ansatz habe ich nicht gefunden!
ich möchte die batch nur arbeiten lassen wenn entsprechende einträge in der registry vorhanden sind?

wenn registry wert (e) vorhanden dann sonst mit fehlermeldung beenden!

ich dachte ich könnte es mit "set" lösen aber das hat nicht funktioniert und somit vermute ich das die abfrage auf einen existierenden wert erfolgen muss!
Mitglied: rubberman
rubberman 30.05.2018 um 00:35:47 Uhr
Goto Top
Ich komme mit deinen Beispieldaten und deiner Erklärung nicht klar. Die Ausgabe eines Kommandos lässt sich aber in einer FOR /F Schleife verarbeiten.
set "foo="  
for /f "tokens=2*" %%i in ('2^>nul reg query "HKLM\software\meinprogramm" /v "value-name"') do set "foo=%%j"  
if defined foo (
  echo %foo%
) else (
  echo nicht gefunden
)
Voraussetzung ist dass "value-name" in der Realität kein Leerzeichen enthält, anderenfalls ist die Anzahl Tokens nach oben zu korrigieren.

Steffen
Mitglied: 136298
136298 30.05.2018, aktualisiert am 31.05.2018 um 22:11:06 Uhr
Goto Top
moin steffen,
bislang habe ich ne batch nur zum kopieren, umbenennen oder löschen eingesetzt und das war immer nur eine zeile!

ich habe mich eventuell auch nur falsch ausgedrückt da meine gedanken vielleicht komplizierter sind als das umsetzen eurerseits vorausgesetzt man/ich liefere die entsprechenden angaben! face-sad

wie fange ich jetzt an dir das rüberzubringen was ich will? hmm!

1. ich möchte zuerst über die registry einen wert (value-data) abfragen und wenn dieser vorhanden ist dann geht es weiter mit 2. ansonsten soll die batch beenden werden mit oder ohne text! (hklm\software\microsoft\windows\currentversion\key-name1 "value-name1" "value-data1")

2. als nächstes soll die registry mir werte (value-data) liefern damit die batch arbeiten kann!
(hklm\software\meinprogramm "value-name2" "value-data2" & hklm\software\meinprogramm "value-name3" "value-data3", ect.)

die registry werte value-data2, value-data3, ect. sollen dann als paltzhalter dienen da diese werte variieren können!
start %value-data2%\programme\meinprogramm\flag\%value-data3%\flag.exe
copy %value-data2%\programme\meinprogramm\flag\%value-data3%
ect. .......

%value-data2% = a-z
%value-data3% > %value-data5% = deu / 049 / 0049

gibt es mehrere lösungen? wenn ja, wie geht man am besten vor?
ich habe das eine oder andere gelesen aber schlau gemacht hat es mich nicht da es zu sehr auf den fragesteller zugeschnitten war/ist!
(if exist oder goto und wie sieht es mit klein oder großschrift aus)

das wäre sogenannt das grundgerüst!

für die mühe, das hellsehen und denken bei dem wetter sage ich vorab ein fettes danke
claushendrik

ps: architektur 32- und 64-bit