[2000] Registry key lezen met batch

Pagina: 1
Acties:

  • Tsjipmanz
  • Registratie: Oktober 2000
  • Laatst online: 19-03 14:37

Tsjipmanz

Der Rudi ist da

Topicstarter
Ik wil de locatie van een bepaalde registry-key value in een variabele zetten om hier later iets mee te doen.

Door middel van de volgende regel code kom ik in de buurt van wat ik wil:
code:
1
regedit /e bla.reg "HKEY_CURRENT_USER\Software\aaa\bbb\ccc\"


Deze schrijft een bestandje weg met wat waardes vanaf deze locatie:

code:
1
2
3
4
5
6
7
Windows Registry Editor Version 5.00
 
[HKEY_CURRENT_USER\Software\aaa\bbb\ccc\]
"CurrentDiskSpaceUsage"=dword:00000000
"MaxDiskSpace"=dword:000000fa
"DSRoot"="H:\\Application Data\\OTLocal"
@=""


Nu wil ik de waarde DSRoot rechtstreeks in een variabele krijgen, maar vooralsnog is dat niet gelukt. Met het commando reg kan je met de vlag /v iets soortgelijks doen maar deze heb ik niet tot mijn beschikking.

Iemand een tip of een "off the shelf"-oplossing waarmee ik verder kan?

Alvast bedankt.

There's no such thing as a mistake, just happy accidents - Bob Ross
Relaxte muziek: altijd okee!
- Soulseek rulez -


  • Question Mark
  • Registratie: Mei 2003
  • Laatst online: 21-03 17:36

Question Mark

Moderator SSC/WOS

F7 - Nee - Ja

Kijk even naar Reg.exe op Rob van der Woude's script page
Reg.exe zit (volgens mij) standaard in W2K / XP. Op deze site staat wel een voorbeeld hoe hiermee een registry-key uit te lezen is, inclusief voorbeeld script:
REG.EXE QUERY HKLM\Software\Microsoft\ResKit /v Version
Displays the value of the registry value Version

[ Voor 31% gewijzigd door Question Mark op 31-10-2005 13:08 ]

MCSE NT4/2K/2K3, MCTS, MCITP, CCA, CCEA, CCEE, CCIA, CCNA, CCDA, CCNP, CCDP, VCP, CEH + zwemdiploma A & B


Verwijderd

Waarom leer je niet programmeren :)

Verwijderd

reg.exe zit in de supporttools geloof ik (op je win2k(3)/xp cd dus).

zoiets werkt waarschijnlijk ook (maar zit je nog met de dubbele \):
code:
1
for /f "tokens=2 delims==" %a in ('regedit /e bla.reg "HKEY_CURRENT_USER\Software\aaa\bbb\ccc\"^|find /i "dsroot"') do set value=%a

[ Voor 86% gewijzigd door Verwijderd op 31-10-2005 13:30 ]


  • Tsjipmanz
  • Registratie: Oktober 2000
  • Laatst online: 19-03 14:37

Tsjipmanz

Der Rudi ist da

Topicstarter
Volgens mij had ik in mn oorspronkelijk post al aangegeven dat ik reg(.exe) niet tot mn beschikking heb.

Ik kan wel programmeren hoor maar ik zit op dit moment in een andere functie. Een door Kuala Lumpur slecht gescript installatiescript zorgt ervoor dat een nieuwe applicatie niet goed geinstalleerd kan worden (dit script zoekt in de registry naar een bepaalde directory en wil deze moven, zonder rekening te houden met de mogelijkheid dat deze directory niet bestaat). Dit script moet (en zal) worden aangepast, maar ik werk bij een dermate groot bedrijf dat voordat dit formeel rond is je zo twee a drie weken verder bent. Ik probeer als work around zelf even snel een batch scriptje inelkaar te zetten dat deze directory aanmaakt zodat het installatie script niet vastloopt, en met wat gezond verstand kom ik wel een eind. Ik krijg alleen niet groen licht om me eerst een paar uurtjes in de geheimen van batch language te verdiepen, dus toen ik strandde dacht ik "voor hetzelfde geld heeft iemand op GoT het wel eerder gedaan".

Maar goed, als er geen standaard commando is om zo'n waarde rechstreeks uit te lezen klooi ik nog wel ff wat verder.

edit:

@iis5_rulez >> sorry had jouw reply over het hoofd gezien ik zal hier eens ff naar kijken. Thanks

[ Voor 6% gewijzigd door Tsjipmanz op 31-10-2005 14:28 ]

There's no such thing as a mistake, just happy accidents - Bob Ross
Relaxte muziek: altijd okee!
- Soulseek rulez -


Verwijderd

ik ging er overigens vanuit dat jou regedit code het regfiletje als output gaf. volgens mij is dat echter niet het geval...

Verwijderd

Tsjipmanz schreef op maandag 31 oktober 2005 @ 14:26:
Volgens mij had ik in mn oorspronkelijk post al aangegeven dat ik reg(.exe) niet tot mn beschikking heb.

Ik kan wel programmeren hoor maar ik zit op dit moment in een andere functie. Een door Kuala Lumpur slecht gescript installatiescript zorgt ervoor dat een nieuwe applicatie niet goed geinstalleerd kan worden (dit script zoekt in de registry naar een bepaalde directory en wil deze moven, zonder rekening te houden met de mogelijkheid dat deze directory niet bestaat). Dit script moet (en zal) worden aangepast, maar ik werk bij een dermate groot bedrijf dat voordat dit formeel rond is je zo twee a drie weken verder bent. Ik probeer als work around zelf even snel een batch scriptje inelkaar te zetten dat deze directory aanmaakt zodat het installatie script niet vastloopt, en met wat gezond verstand kom ik wel een eind. Ik krijg alleen niet groen licht om me eerst een paar uurtjes in de geheimen van batch language te verdiepen, dus toen ik strandde dacht ik "voor hetzelfde geld heeft iemand op GoT het wel eerder gedaan".

Maar goed, als er geen standaard commando is om zo'n waarde rechstreeks uit te lezen klooi ik nog wel ff wat verder.

edit:

@iis5_rulez >> sorry had jouw reply over het hoofd gezien ik zal hier eens ff naar kijken. Thanks
je kan in je batch filetjes gewoon een if statement gebruiken he, niet vergeten

if dir not exist.. blabla (mooie pseudo he :9)

  • DukeBox
  • Registratie: April 2000
  • Nu online
tail -n3 bla.reg | head -n1 | cut -d"=" -f2

  • Tsjipmanz
  • Registratie: Oktober 2000
  • Laatst online: 19-03 14:37

Tsjipmanz

Der Rudi ist da

Topicstarter
Het is gelukt mbv de volgende code:

code:
1
2
3
4
5
@echo off
regedit /e bla.reg "HKEY_CURRENT_USER\Software\aaa\bbb\ccc\" 
for /f "usebackq tokens=2 delims==" %%a in (`find /i "dsroot" bla.reg`) do set dirvalue=%%a
echo Personal data store located at %dirvalue%
if not exist %dirvalue% echo mkdir %dirvalue%


Bedankt voor jullie hulp.

There's no such thing as a mistake, just happy accidents - Bob Ross
Relaxte muziek: altijd okee!
- Soulseek rulez -

Pagina: 1