Hét vraag- en antwoordplatform van Nederland

Hoe kan ik een DOS-variabele aanvullen met spaties?

Stel:
set auto=bmw
(Drie karakters.)

Wat ik dan zoek, is een commando die precies zoveel spaties toevoegt aan de variabele dat de string 10 karakters lang is. Afhankelijk van de lengte. Als auto=audi, moeten er dus 6 spaties worden toegevoegd.

Verwijderde gebruiker
12 jaar geleden
977

Heb je meer informatie nodig om de vraag te beantwoorden? Reageer dan hier.

Het beste antwoord

@echo off

set merk=Audi

set merk=%merk% X
set merk=%merk:~0,10%

echo "%merk%"

Toegevoegd na 2 minuten:
 
Moeilijk te zien in een proportioneel lettertype, maar dit is wat er gebeurt:

Eerst voeg ik tien spaties toe aan 'merk'. De X die ik achter die tien spaties heb gezet is feitelijk niet nodig; het enige nut is het voorkomen dat de 'trailing spaces' worden afgekapt, hetzij door mijn editor hetzij door de command interpreter.

Vervolgens neem ik een substring, beginnend op positie 0 (C-stijl-nummering, dus positie 0 is het eerste karakter), met lengte 10.

Toegevoegd na 7 minuten:
 
PS.
Afhankelijk van wat je precies wilt in je vorige vraag
( http://www.goeievraag.nl/vraag/mmm.316481 ), kun je deze methode misschien ook daar gebruiken.
(Lees meer...)
Cryofiel
12 jaar geleden
Verwijderde gebruiker
12 jaar geleden
Top!! Slim bedacht!
De gebruikte commando's kende ik, maar aan deze oplossing had ik niet gedacht :).
Verwijderde gebruiker
12 jaar geleden
Benieuwd trouwens of
set merk=%merk% X
set merk=%merk:~0,10%
...ook op 1 regeltje kan. In
set merk=%%merk% :~0,10%
...trapt ie niet.
Cryofiel
12 jaar geleden
Daar was ik ook benieuwd naar, maar ik heb geen methode kunnen vinden. Ik heb het daarom maar bijde twee regelige oplossing gelaten. a.  Het werkt.
b.  De code is leesbaar en begrijpelijk. Een eenregelige oplossing is *nu* weliswaar "cool", maar je loopt het risico dat je de code pas over twee jaar opnieuw bekijkt, en dan totaal niet meer begrijpt wat de bedoeling ervan is.
Cryofiel
12 jaar geleden
Ik bedenk me trouwens dat deze methode slechts werkt wanneer je begin-string 0 t/m 10 karakters bevat. Wanneer je string om te beginnen al langer is dan 10 karakters, zal de string worden ingekort tot lengte 10. Het hangt van je toepassing af of dit juist gewenst, of juist zeer ongewenst is.
Verwijderde gebruiker
12 jaar geleden
In mijn geval maakt 't niet uit :).
Cryofiel
12 jaar geleden
Dan rijd jij vast in een Volkswagen (tien tekens)!
Verwijderde gebruiker
12 jaar geleden
Ik zal het niet verklappen wat ik heb; wel wil ik zeggen dat het ik geen Golf heb. Die zijn 'dodelijk saai'! Met name als het een grijze of zwarte is.
Het nadeel van een grijze ('zilver') golf is, afgezien van 't feit dat grijs lelijk is voor een auto, dat ie zo lang mee gaat - dus zit je ook lang aan die saaie auto vast :).
Cryofiel
12 jaar geleden
Ik maak hieruit op dat je uit ervaring spreekt... ;-)
rose
12 jaar geleden
Mooi gedaan, Cryo. Mijn Rover is antraciet, ook een soort grijs. Maar wel mooi, MMM
Verwijderde gebruiker
12 jaar geleden
Nee jakkie... Maar: hoe meer grijze auto's (zoals de jouwe), hoe meer mijn auto opvalt :).
Dat is dan weer een plusje van 't feit dat 90% grijs t/m zwart is.
Een auto kopen die dezelfde kleur heeft als 't wegdek... Ik kan er met mijn vestand moeilijk bij :).

Weet jij het beter..?

Het is niet mogelijk om je eigen vraag te beantwoorden Je mag slechts 1 keer antwoord geven op een vraag Je hebt vandaag al antwoorden gegeven. Morgen mag je opnieuw maximaal antwoorden geven.

0 / 2500
Gekozen afbeelding