Dieser Beitrag ist schon älter. Bitte vergewissern Sie sich, dass die Rahmenbedingungen oder der enthaltene Lösungsvorschlag noch dem aktuellen Stand der Technik entspricht.

Batch - Anzahl der Buchstaben in einer Zeichenkette

Mitglied: 71590
Hallo,
ich bin neu hier und habe eine (komplizierte?) Frage:

Ist es in einer .bat-Datei möglich, die Anzahl der einzelnen Buchstaben (und Zahlen) aus einer Variablen (Inhalt der Variablen ist ein Wort oder eine Zeichenkette) herauszufinden?

Also zum Beispiel:

Die Variable enthält das Wort "Hallo". Das Schript müsste dann bemerken, dass ein "a", ein "h", zwei "l" und ein "o" in der Variablen enthalten sind.

Groß- und Kleinschreibung ist egal, Großbuchstaben sollen wie kleine Buchstaben behandelt werden.


Wenn das möglich ist, wie könnte man dann z.B. wenn ein "a" festgestellt wird das Programm anweisen, die Zahl "26" zu einer anderen Variablen dazu zu zählen? Oder bei einem "b" die 25; bei einem "c" die 24; [...]; bei einem "x" die 3; bei einem "y" die 2; bei einem "z" die 1?

Also für "Hallo" ergäbe sich dann die folgende Rechnung:

h = 19
a = 26
l = 15
l = 15
o = 12

h+a+l+l+o = 19+26+15+15+12 = 87

Und dann noch die einzelnen Werte multiplizieren:

h*a*l*l*o = 19*26*15*15*12 = 1333800

Dann sollen die Werte durcheinander geteilt werden:

1333800/87 = 15331,034482758620689655172413793

Die Kommastellen sollen entfernet werden; die Zahl soll gerundet werden:

1333800/87 = 15331


Wie kann man das in einer .bat-Datei realisieren?

Content-Key: 101077

Url: https://administrator.de/contentid/101077

Ausgedruckt am: 25.07.2021 um 12:07 Uhr

Mitglied: bastla
bastla 05.11.2008 um 14:51:14 Uhr
Goto Top
Hallo Exterminator und willkommen im Forum!

Soferne die Strings nicht zu lange werden (die höchste in Batch darstellbare Zahl ist 2147483647, was, wegen der Multiplikation, durchschnittlich etwa 7 bis 8 Zeichen erlauben würde) sollte das etwa so gehen:
Funktionieren sollte das Ganze für die 26 Buchstaben des (engl) Alphabets (sobald Du in der Liste oben die "Löcher" gefüllt hast ;-) face-wink) - Sonderzeichen müsstest Du testen (mit "!" wird es zB nicht klappen). Groß-/Kleinschreibung wird übrigens nicht unterschieden.

Grüße
bastla
Mitglied: 71590
71590 05.11.2008 um 15:56:59 Uhr
Goto Top
Hey, danke!

Werde es gleich mal ausprobieren und melde mich dann wieder.
Mitglied: 71590
71590 05.11.2008 um 16:07:04 Uhr
Goto Top
Es klappt!
Super!
Tolle Arbeit!

Aber wie funktioniert das mit Zahlen?

Also ich würde außerdem gerne Zahlen einfügen.
Z.B. "Hallo13"

Dabei soll gelten:
1=9
2=8
3=7
...
7=3
8=2
9=1

Die Null soll ganz weg gelassen werden und nicht berücksichtigt werden.
Mitglied: bastla
bastla 05.11.2008 um 16:47:26 Uhr
Goto Top
Hallo Exterminator!

Und wenn Du noch
etc hinzufügst?

Grüße
bastla
Mitglied: 71590
71590 05.11.2008 um 17:12:09 Uhr
Goto Top
MANN bin ich blöd!

Notiz an mich selbst: "Erst denken, dann fragen".

1000x THX an dich!
Heiß diskutierte Beiträge
general
Kosten nicht gerechtfertigt? Dienstleister stellt Kosten für "Troubleshooting" bei Neuanschaffung von HCI + CoreSwitchDirty2186Vor 1 TagAllgemeinZusammenarbeit17 Kommentare

Hallo Zusammen, ich interessiere mich für Eure Meinung zu dem Thema Leistungsnachweise von Systemhäusern und Dienstleistern und deren Berechnung von Leistungen. Da sich hier ja ...

question
Listet Microsoft Default ACLs von Windows?DerWoWussteVor 1 TagFrageSicherheit18 Kommentare

Moin Kollegen. Nach dem Sicherheits-GAU "Hivenightmare" stellt sich mir die Frage, wie ich in Zukunft sicherstellen kann, dass die ACLs der Systemdateien in Windows korrekt ...

question
Doppelte A-Records in DNSBPeterVor 1 TagFrageWindows Server10 Kommentare

Hallo, unsere Windows Notebooks registrieren sich im DNS mit ihrer Lan- und Wlan Adresse. D.h. es gibt 2 gleiche Namen mit 2 unterschiedlichen IP-Adressen. Wie ...

question
2U Home-Server Frage zur HardwaremossoxVor 23 StundenFrageServer-Hardware10 Kommentare

Hallo zusammen, ich habe in den letzten Jahren auf die Systeme von Synology gesetzt. Im Wesentlichen ging es immer nur um simple CIFS Dienste, nichts ...

question
Powershell Ordner löschen die älter als x Tage sindsascha46Vor 21 StundenFrageEntwicklung6 Kommentare

Hallo Ich würde gerne in einem Verzeichnis alle Ordner die älter als X Tage sind löschen. Aber irgendwie bekomme ich das nicht hin. Bisher habe ...

question
Firmengelände Glasfaser mehrere GebäudeTonLichtVideoVor 18 StundenFrageNetzwerke4 Kommentare

Hallo zusammen, Ist Zustand: Firmengelände mit mehreren großen Hallen die zentral per Glasfaser verbunden werden sollen. Längen zwischen 100 und 400 Metern. Aufgrund der Zukunftssicherheit ...

question
Antivirus auf Synology sinnvoll?CoreknabeVor 1 TagFrageSAN, NAS, DAS3 Kommentare

Moin, nachdem Antivirus Essentials auf unserem Synology-NAS wieder einmal lustige Kapriolen fabriziert (Installationsdatei für MS Office ist hochgefährlich), stelle ich mir die Frage, ob es ...

question
Abfrageprob in Access gelöst martenkVor 1 TagFrageVB for Applications4 Kommentare

Hallo, meine Tabelle Reservierungen sieht so aus id_Objekt_Anreise_Abreise_Miete 1_A2_01.02.2021_07.02.2021_350 2_A3_02.02.2021_06.02.2021_150 3_A2_02.02.2021_03.02.2021_50 4_A2_15.02.2021_26.02.2021_500 5_A3_08.02.2021_12.02.2021_300 jetzt gebe ich im HF z.b. den Bereich ein 01.01. - 03.03. ...