Reading value from Windows registry

Example

@echo off
for /F "tokens=3* " %%r in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion /v ProgramFilesDir') do set PFD_REG=%%r
echo ProgramFilesDir is %PFD_REG%

for /?

Udfører en angivet kommando for hver fil i en mængde af filer.

FOR %variabel IN (mængde) DO kommando [kommandoparametre]

  %variabel     Angiver en parameter på et bogstav, som kan erstattes.
  (mængde)       Angiver en mængde af en eller flere filer.\n
                 Jokertegn kan anvendes.
  kommando       Angiver den kommando, som skal udføres for hver fil.
  kommandoparametre
                 Angiver parametre til den angivne kommando.

Ved brug af FOR-kommandoen i et batchprogram angives %%variabel i stedet for
%variabel. Variabelnavne er følsomme over for store og små bogstaver,
%i er derfor forskellig fra %I

Hvis kommandoudvidelserne er aktiveret, understøttes følgende 
yderligere varianter af kommandoen FOR:

FOR /D %variabel IN (filsæt) DO kommando [kommandoparametre]

    Hvis det angivne filsæt indeholder jokertegn, behandles mappenavne
    i stedet for filnavne.

FOR /R [[drev:]sti] %variabel IN (filsæt) DO kommando [kommandoparametre]

    Gennemgår mappetræet med roden [drev:]sti og udfører sætningen FOR
    i alle træets mapper. Hvis der ikke er angivet en mappe efter /R,
    tages der udgangspunkt i den aktuelle mappe. Hvis sættet kun er ‚t
    enkelt punktum (.), optælles kun mappetræet.

FOR /L %variabel IN (start,step,slut) DO kommando [kommandoparametre]

    Sættet er en talsekvens fra start til slut med en trinstørrelse.
    (1,1,5) giver således sekvensen 1 2 3 4 5, og (5,-1,1) giver
    sekvensen (5 4 3 2 1)

FOR /F ["indstillingsstreng"] %variabel IN (filsæt) DO kommando
       [kommandoparametre]
FOR /F ["indstillingsstreng"] %variabel IN ("streng") DO kommando
       [kommandoparametre]
FOR /F ["indstillingsstreng"] %variabel IN ('kommando') DO kommando
       [kommandoparametre]

    eller, hvis indstillingen usebackq er til stede:

FOR /F ["indstillingsstreng"] %variabel IN (filsæt) DO kommando
       [kommandoparametre]
FOR /F ["indstillingsstreng"] %variabel IN ('streng') DO kommando
       [kommandoparametre]
FOR /F ["indstillingsstreng"] %variabel IN (`kommando`) DO kommando
       [kommandoparametre]

    filnavnsæt er et eller flere filnavne. Hver fil åbnes, læses og
    behandles, inden der fortsættes til næste fil i filnavnsættet.
    Behandlingen består af at læse i filen, bryde den op i individuelle
    tekstlinjer og derefter fortolke hver linje til nul eller flere
    tokens. Derefter kaldes indholdet af FOR-løkken med variabelværdi(er)
    sat til den eller de fundne tokenstrenge. Som standard videregiver
    /F den første, tomme udskilte token fra hver linje i hver fil. Tomme
    linjer springes over. Du kan tilsidesætte standardfortolkningen
    ved at angive den valgfrie "indstillingsstreng"-parameter. Strengen
    skal angives i anførselstegn, og den indeholder et eller flere
    nøgleord, der angiver forskellige fortolkningsindstillinger.
    Nøgleordene er:

        eol=c           - angiver linjeafslutningstegn (kun et)
        skip=n          - angiver, hvor mange linjer der skal springes over 
                          i starten af filen.
        delims=xxx      - angiver et afgrænsningssæt. Det erstatter
                          standardafgrænsningssættet bestående af mellemrum
                          og tabulatortegn.
        tokens=x,y,m-n  - angiver, hvilke tokens fra hver linje der skal
                          overgives til FOR-indholdet for hver gentagelse.
                          Dette medfører, at der tildeles flere 
                          variabelnavne. m-n er et område, der angiver den
                          m'te til n'te token. Hvis det sidste tegn i 
                          strengen tokens= er en stjerne, tildeles der 
                          yderligere en variabel, som modtager den 
                          resterende tekst på linjen efter den token, 
                          der blev fortolket sidst.
        usebackq        - angiver, at der gælder nye regler, når en streng i
                          omvendte anførselstegn udføres som en kommando,
                          og en streng i enkelte anførselstegn er en 
                          konstantstrengkommando, samt tillader brugen af
                          dobbelte anførselstegn til at anbringe filnavne i
                          anførselstegn i filnavnsæt.

    Eksempler:

FOR /F "eol=; tokens=2,3* delims=, " %i in (minfil.txt) do @echo %i %j %k

    sætningen analyserer alle linjer i minfil.txt, ignorerer linjer, der
    begynder med et semikolon, sender anden og tredje token fra hver linje
    til FOR-indholdet, med tokens adskilt af kommaer og/eller mellemrum.
    Bemærk henvisningen til FOR-sætningen %i, der henter andet token,
    %j, der henter tredje token, og %k, der henter alle resterende tokens
    efter det tredje. Filnavne, der indeholder mellemrum, skal sættes i
    dobbelte anførselstegn. Hvis du vil bruge dobbelte anførselstegn på
    denne måde, skal du også bruge indstillingen usebackq, ellers
    fortolkes dobbelte anførselstegn som en definition af en konstantstreng,
    der skal analyseres.

    %i erklæres eksplicit i FOR-sætningen, og %j og %k erklæres implicit
    via indstillingen tokens=. Du kan angive op til 26 tokens via linjen
    tokens=, forudsat det ikke medfører et forsøg på at erklære en variabel,
    der er højere end bogstavet 'z' eller 'Z'. Husk, at der er forskel på
    store og små bogstaver i FOR-variabler, de er globale, på et bogstav,
    og der må højst være 52 aktive på ‚n gang.

    Du kan bruge analyselogikken FOR /F på en midlertidig streng ved at
    gøre filnavnsættet, der står i parentes, til en streng i anførselstegn
    ved at anvende enkelte anførselstegn. Den behandles som ‚n enkelt linjes
    input fra en fil og analyseres.

    Endelig kan du anvende kommandoen FOR /F til at analysere outputtet
    fra en kommando. Dette gøres ved at ændre filnavnsættet i parentes
    til en streng i omvendte anførselstegn. Den behandles som en
    kommandolinje, der videregives til en underordnet CMD.EXE, og
    outputtet anbringes i hukommelsen og analyseres, som var det en fil.

    I følgende eksempel:

      FOR /F "usebackq delims==" %i IN (`filsæt`) DO @echo %i

    optælles miljøvariabelnavnene i det aktuelle miljø.

Desuden er erstatningen af FOR-variabelhenvisningerne udvidet.
Du kan nu bruge følgende valgfrie syntaks:

    %~I         - udvider %I og fjerner omgivende anførselstegn (")
    %~fI        - udvider %I til et fuldt kvalificeret stinavn
    %~dI        - udvider %I til kun at omfatte et drevbogstav
    %~pI        - udvider %I til kun at omfatte en sti
    %~nI        - udvider %I til kun at omfatte et filnavn
    %~xI        - udvider %I til kun at omfatte et filtypenavn
    %~sI        - den udvidede sti indeholder kun korte navne
    %~aI        - udvider %I til filens filattributter
    %~tI        - udvider %I til filens dato/klokkeslæt
    %~zI        - udvider %I til filens størrelse
    %~$PATH:I   - søger i mapperne angivet i miljøvariablen PATH
                   og udvider %I til det fuldt kvalificerede navn
                   på den første, der findes. Hvis miljøvariabel-
                   navnet ikke er angivet, eller filen ikke findes
                   under søgningen, udvides denne modifikator til
                   den tomme streng

Modifikatorerne kan kombineres, så der opnås sammensatte resultater:

    %~dpI       - udvider %I til kun at omfatte et drevbogstav
                   og en sti
    %~nxI       - udvider %I til kun at omfatte et filnavn
                   og et filtypenavn
    %~fsI       - udvider %I til kun at omfatte et fuldt stinavn
                   med korte navne
    %~dp$PATH:i - søger i mapper angivet i miljøvariablen PATH
                   for %I og udvider til drevbogstavet og stien
                   på den første, der findes.
    %~ftzaI     - udvider %I til en DIR-lignende outputlinje

I ovennævnte eksempler kan %I og PATH erstattes af andre gyldige
værdier. Syntaksen %~ afsluttes af et gyldigt FOR-variabelnavn.
Ved at vælge variabelnavne med store bogstaver, f.eks. %I, øges
læsbarheden, og der undgås forvekslinger med modifikatorerne, hvor
der ikke er forskel på store og små bogstaver.

reg /?

Konsolværktøj til registreringsdatabasen til Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001.  Alle rettigheder forbeholdes


REG Handling [Parameterliste]

  Handling  [ QUERY   | ADD    | DELETE  | COPY    |
              SAVE    | LOAD   | UNLOAD  | RESTORE |
              COMPARE | EXPORT | IMPORT ]

Returkode: (Undtagen for REG COMPARE)

  0 - Lykkedes
  1 - Mislykkedes

Hvis du vil have hjælp til en bestemt handling, skal du skrive:

  REG Handling /?

Eksempler:

  REG QUERY /?
  REG ADD /?
  REG DELETE /?
  REG COPY /?
  REG SAVE /?
  REG RESTORE /?
  REG LOAD /?
  REG UNLOAD /?
  REG COMPARE /?
  REG EXPORT /?
  REG IMPORT /?

reg query /?

Konsolværktøj til registreringsdatabasen til Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001.  Alle rettigheder forbeholdes


REG QUERY Nøglenavn [/v Værdinavn | /ve] [/s]

  Nøglenavn    [\Computer\]Fuldstændig nøgle
    Computer - Navn på fjerncomputer, udelader standardindstillinger
               på den aktuelle computer
               Kun HKLM og HKU er tilgængelige på fjerncomputere
    Fuldstændig nøgle  - i form af RODNØGLE\Undernøglenavn
               RODNØGLE  [ HKLM | HKCU | HKCR | HKU | HKCC ]
               Undernøgle  - Det fuldstændige navn på en
               registreringsdatabasenøgle under den valgte RODNØGLE
  /v  forespørgsel efter en bestemt registreringsdatabasenøgle
         Værdinavn  - Navnet, der forespørges efter, under den valgte Nøgle.
         Hvis det er udeladt, forespørges der efter alle værdier under nøglen
  /ve forespørgsel efter standardværdien eller et tomt værdinavn
      
  /s  forespørger alle undernøgler og værdier

Eksempler:

  REG QUERY HKLM\Software\Microsoft\ResKit /v Version
    Viser værdien for registreringsdatabaseværdien Version

  REG QUERY HKLM\Software\Microsoft\ResKit\Nt\Setup /s
    Viser alle undernøgler og værdier under registreringsdatabasenøglen Setup