windows - Hvordan slippe jeg af med mellemrum i en miljøvariabel

Indlæg af Hanne Mølgaard Plasc

Problem



Hvordan slippe jeg af med mellemrum i en miljøvariabel?


Antag, at jeg har følgende for loop fragment, der får den ledige diskplads størrelse på en bestemt disk.


for /f "tokens=3" \%\%i in ('dir ^| find "Dir(s)"') do set size=\%\%i


ville resultere i noget som dette


C:>set size=129,028,096


Jeg vil gerne slippe af med delimetre som følger.


for /f "delims=," \%\%i in ('echo \%size\%') do set size=\%\%i


og resulterede i noget som dette


set size=129 028 096


Hvordan kan jeg få det uden mellemrum eller afgrænsning med indbyggede værktøjer?

Bedste reference


Du kan bruge


set size=\%size: =\%


bagefter, som erstatter alle rum med ingenting.


Men det kan du også gøre med kommaer :)


Men husk på, at (a) afgrænseren ændrer sig, det er et punkt til mig, ikke et komma. Det kan afhænge af dit OS sprog eller regionale indstillinger. Og (b) kan du ikke virkelig lave matematik med den værdi efterfølgende som cmd er begrænset til underskrevet 32-bit matematik (ved hjælp af set /a).


Din anden for erklæring har ikke fungeret korrekt, forresten, da den bare sætter size til den sidste cifregruppe. Det kan omgå, men jeg anbefaler snarere at bruge udskiftningen direkte på kommaer/prikker:


set size=\%size:,=\%
set size=\%size:.=\%