Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Batch - Anzahl der Buchstaben in einer Zeichenkette

Mitglied: 71590

71590 (Level 1)

05.11.2008, aktualisiert 17:12 Uhr, 6557 Aufrufe, 5 Kommentare

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?
Mitglied: bastla
05.11.2008 um 14:51 Uhr
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:
01.
@echo off & setlocal enabledelayedexpansion 
02.
set a=26 
03.
 
04.
set h=19 
05.
 
06.
set l=15 
07.
 
08.
set o=12 
09.
 
10.
set "Text=Hallo" 
11.
set /a Nr=0 
12.
set /a Summe=0 
13.
set /a Produkt=1 
14.
 
15.
:Loop 
16.
set "Char=!Text:~%Nr%,1!" 
17.
if "%Char%"=="" goto :Weiter 
18.
set /a Summe+=!%Char%! 
19.
set /a Produkt*=!%Char%! 
20.
set /a Nr+=1 
21.
goto :Loop 
22.
 
23.
:Weiter 
24.
set /a Halb=Summe/2 
25.
set /a Ergebnis=Produkt/Summe 
26.
set /a Rest=Produkt%%Summe 
27.
if %Rest% geq %Halb% set /a Ergebnis+=1 
28.
echo %Ergebnis%
Funktionieren sollte das Ganze für die 26 Buchstaben des (engl) Alphabets (sobald Du in der Liste oben die "Löcher" gefüllt hast ) - Sonderzeichen müsstest Du testen (mit "!" wird es zB nicht klappen). Groß-/Kleinschreibung wird übrigens nicht unterschieden.

Grüße
bastla
Bitte warten ..
Mitglied: 71590
05.11.2008 um 15:56 Uhr
Hey, danke!

Werde es gleich mal ausprobieren und melde mich dann wieder.
Bitte warten ..
Mitglied: 71590
05.11.2008 um 16:07 Uhr
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.
Bitte warten ..
Mitglied: bastla
05.11.2008 um 16:47 Uhr
Hallo Exterminator!

Und wenn Du noch
set 1=9
etc hinzufügst?

Grüße
bastla
Bitte warten ..
Mitglied: 71590
05.11.2008 um 17:12 Uhr
MANN bin ich blöd!

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

1000x THX an dich!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch: Wenn Buchstaben im Wort enthalten dann......

gelöst Frage von Luckyman7471Batch & Shell7 Kommentare

Hallo Leute, Ich würde gerne folgendes realisieren: Wenn im lokalen Computernamen die Buchstaben "fa" enthalten sind dann soll ein ...

C und C++

Anzahl der Buchstaben in einem String Element Array C++

gelöst Frage von ProtectedC und C++3 Kommentare

Hallo, ich benötige Hilfe. Ich möchte gerne in den jeweiligen Elementen die Anzahl der Buchstaben zählen. Ich hatte an ...

VB for Applications

In einer Textzeile (String) die Anzahl eines vorgekommenen Buchstaben zählen

gelöst Frage von windelterroristVB for Applications5 Kommentare

Hallo! Ich bin noch neu im Bereich VBA und bin mir deshalb noch etwas unsicher in dieser Programmiersprache. Würde ...

Batch & Shell

Wie kann ich in Batch überprüfen, ob ein Text einen Buchstaben enthält?

Frage von CYCGHGBatch & Shell3 Kommentare

Hallo, ich habe eine Frage zu Batch. Folgendes: set /p text= if %test% CONTAINS "/" Irgendein Befehl /\ Diesen ...

Neue Wissensbeiträge
Multimedia & Zubehör
AVM Fritz USB WLAN Sticks schneller einschalten
Tipp von NetzwerkDude vor 21 StundenMultimedia & Zubehör

Die AVM Fritz WLAN Sticks haben in der Firmware 2 Modis: Einmal als Massenspeicher und einmal als WLAN Netzwerkkarte ...

Windows Server

Windows Server Backup schlögt Fehl -Lösung 2008-2016

Tipp von BiGnoob vor 23 StundenWindows Server

Hi zusammen , ich möchte gerne einen Lösungstipp abgeben für folgenden fehler: lösung ist folgende:

Humor (lol)
Telekom vs. O2 - 3:2
Erfahrungsbericht von the-buccaneer vor 1 TagHumor (lol)4 Kommentare

Unglaublich aber wahr: Nachdem mein privater Anschluss am 19.04.18 auf VOIP und VDSL umgestellt wurde, hatte ich seitdem 1,5 ...

Batch & Shell

Windows 10 Heimnetzgruppe abgeschaft. Ein Script für einfache Netzwerk - Freigabe im Heimnetzwerk

Anleitung von treehe vor 1 TagBatch & Shell3 Kommentare

Anleitung für eine einfache Netzwerkfreigabe unter Windows 10 Wie weiter hab mal ein kleines CMD - Script gebastelt. Womit ...

Heiß diskutierte Inhalte
Netzwerke
IP-Adresse am zweiten Domänencontroller fest vergeben - Server verschwunden
gelöst Frage von DanielG1974Netzwerke28 Kommentare

Ich hab ein Problem, was ich bisher noch nicht erlebt habe Ich habe erfolgreich einen zweiten Server mit ActiveDirectory ...

Windows Tools
Virtueller Drucker gesucht (Schnittstelle: USB oder Seriell)
gelöst Frage von chrisButterflyWindows Tools21 Kommentare

Hi, ich suche einen virtuellen Drucker, den ich über eine USB oder serieller Schnittstelle ansprechen kann. Dieser Drucker soll ...

Windows Server
Windows Server 2012 - Update - Beim Booten bleibt der Server beim Windows Zeichen stehen
Frage von KeilbachWindows Server17 Kommentare

Hallo Zusammen, ich grüße euch, mein Name ist Michele. Ich bin hier ganz Neu - da ich einfach nicht ...

Windows 10
Weiße Fenster beim Aufruf verschiedener Apps
Frage von 90584Windows 1011 Kommentare

Hallo liebe Leute ! Ich habe ein Problem. Bei verschiedensten Anwendungen, wie z.B. beim Anhang, sind nur unlesbare weiße ...