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