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

Batch - Suche grösste Zahl in Textfile und kopiere eine andere Zahl aus dieser Zeile

Frage Entwicklung Batch & Shell

Mitglied: banshe

banshe (Level 1) - Jetzt verbinden

18.10.2012, aktualisiert 19.10.2012, 5284 Aufrufe, 7 Kommentare

Hallo zusammen

Meine Batch Kenntnisse sind sehr bescheiden! Ich probiere aktuell etwas zusammen-zu-bauen...

Ich habe ein Textdokument das in wie folgt aufgebaut ist:

ID_DVD_TITLE_4_LENGTH=182.960
ID_DVD_TITLE_5_LENGTH=867.920
ID_DVD_TITLE_6_LENGTH=266.760
ID_DVD_TITLE_7_LENGTH=7766.480
ID_DVD_TITLE_8_LENGTH=652.360
ID_DVD_TITLE_9_LENGTH=212.720


Nun möchte ich mit einem Batch die höchste Zahl in diesem Textdokument suchen - in diesem Beispiel "7766.480" - und aus dieser Zeile die Zahl "7" in eine Variable schreiben.

Schlussendlich benötige ich nur eine Variable mit (in diesem Beispiel) der Zahl "7" drinnen.


Wie stelle ich das an?
Bitte um hilfe!

Herzlichen Dank!
Mitglied: pieh-ejdsch
18.10.2012, aktualisiert um 13:57 Uhr
moin,

gibt es Title_10 und folgende auch noch?

wenn ja dann so: auf der CMD-Line
01.
(for /f "usebackqtokens=1,2delims==" %i in ("datei") do @echo %j)|sort /r >Test && <"Datei" set /p "Zahl="&cmd /von /c "find "!Zahl!" <"Datei" "
Gruß Phil
Bitte warten ..
Mitglied: bastla
18.10.2012, aktualisiert um 17:56 Uhr
... ansonsten zB als Batch
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Ein=D:Textdokument.txt" 
03.
 
04.
set /a Max=0 
05.
set /a Title=0 
06.
for /f "usebackq tokens=4,6,7 delims=_=." %%i in ("%Ein%") do ( 
07.
    if %%j%%k gtr !Max! ( 
08.
        set /a Max=%%j%%k 
09.
        set /a Title=%%i 
10.
11.
12.
echo %Title% mit %Max% Groesse
Grüße
bastla

[Edit] @ PH: Mit "sort" wirst Du aber "7766.480" nicht als größte Zahl erhalten ... [/Edit]
Bitte warten ..
Mitglied: banshe
18.10.2012 um 15:50 Uhr
Absolute spitzenklasse!
Danke euch beiden...

Vielen Dank bastla - funktioniert einwandfrei!
Bitte warten ..
Mitglied: banshe
19.10.2012 um 09:59 Uhr
Leider hat sich ein Problem eingeschlichen und das Script ist mir zu komplex als dass ich den Fehler beheben könnte:
In dem Textfile gibt es noch einen haufen anderer Angaben, von denen aber nur eine Zeile schwierigkeiten macht:

ID_DVD_VOLUME_ID=THE_CORE

In dem Beispiel

ID_DVD_TITLE_4_LENGTH=182.960
ID_DVD_TITLE_5_LENGTH=867.920
ID_DVD_TITLE_6_LENGTH=266.760
ID_DVD_TITLE_7_LENGTH=7766.480
ID_DVD_TITLE_8_LENGTH=652.360
ID_DVD_TITLE_9_LENGTH=212.720
ID_DVD_VOLUME_ID=THE_CORE

Bekomme ich die Zahl 0 mit 0 Groesse


Andere Teile der Textdatei wie:

ID_DVD_TITLE_6_ANGLES=1
ID_DVD_TITLE_7_CHAPTERS=20
ID_DVD_TITLE_7_ANGLES=1
ID_DVD_TITLE_8_CHAPTERS=1
ID_DVD_DISC_ID=2D3B5BE310483B7C5EC4111EB4B29396
ID_VIDEO_FORMAT=0x10000002
ID_VIDEO_BITRATE=8000000
ID_VIDEO_WIDTH=720
ID_VIDEO_HEIGHT=576
ID_VIDEO_FPS=25.000
ID_VIDEO_ASPECT=0.0000
Opening video decoder: [mpegpes] MPEG 1/2 Video passthrough
Could not find matching colorspace - retrying with -vf scale...
Opening video filter: [scale]
ID_VIDEO_CODEC=ffmpeg2
Audio: no sound
Starting playback...


Machen keine Probleme...
Bitte um hilfe!

Herzlichen Dank...
Bitte warten ..
Mitglied: pieh-ejdsch
19.10.2012, aktualisiert um 11:06 Uhr
moin Bastla,

[Edit] @ PH: Mit "sort" wirst Du aber "7766.480" nicht als größte Zahl erhalten ... [/Edit]

naja dann muss die nichtzahl eben raus:

@banshe
ersetze Bastlas Zeile 06. mit dieser:
for /f "tokens=4,6,7 delims=_=." %%i in ('find "_TITLE_" ^<"%Ein%" ' ) do (
dann sollte es reichen.

Gruß Phil
Bitte warten ..
Mitglied: banshe
19.10.2012 um 12:41 Uhr
Herzlichen Dank!
Klappt super..

Ich habe mich nun ein bisschen in das Thema "Tokens" und "Delims" eingelesen und verstehe in etwa was es bedeutet. Wirklich anwenden kann ich es jedoch "noch" nicht.

Ich habe noch eine kleine Folgefrage:
Wie kann ich in der Textdatei nach einem String (ID_DVD_VOLUME_ID=) suchen und alles hinter dem "=" in eine Variable packen?

Aus folgender Zeile möchte ich schlussendlich "THE_CORE" in der Variablen:

ID_DVD_VOLUME_ID=THE_CORE

Das Wort hinter dem "=" kann aber ändern... Es kann nur ein Wort sein "ELFENLIED" oder auch mehrere "NEON_GENESIS_EVANGELION". Ob die einzellnen Wörter immer mit einem "_" getrennt sind, weiss ich noch nicht...

Mit "find" kann ich zwar den String finden, wie aber den Rest in eine Variable? Oder macht man das mit dem "for /f"?


Herzlichen Dank!
Bitte warten ..
Mitglied: banshe
19.10.2012 um 13:33 Uhr
Ich hab ne Stunde probiert und habe es selber geschafft! =)

for /f "tokens=2 delims==" %%i in ('find "ID_DVD_VOLUME_ID=" ^<"%Ein%" ' ) do (
set NAME=%%i
)


Danke euch für die Hilfe!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Text aus einem Textfile auslesen und in Zeile 1 hinein kopieren
Frage von IronangelBatch & Shell2 Kommentare

Hallo zusammen, dies ist mein erster Beitrag. Ich hoffe hier Hilfe zu finden. Ich benötige einen Befehl für ein ...

VB for Applications
Zählen von Nummern in Textfile
gelöst Frage von Calim3roVB for Applications3 Kommentare

Hallo zusammen Gerne möchte ich mir ein VB-Script basteln, jedoch fehlt mir dazu noch einiges an Wissen und im ...

VB for Applications
VBS Zeilen in Textfile suchen und nur nach erfüllten Kriterien löschen
Frage von Calim3roVB for Applications6 Kommentare

Hallo zusammen Ich gelange wieder mal mit einer Bitte an euch. Kurze Erläuterung: In einem File habe ich Zeichenböcke: ...

Batch & Shell
Mit Batch zwei Textfiles in einem zusammenfügen
gelöst Frage von BustedDiceBatch & Shell9 Kommentare

Hallo zusammen brauch eure Hilfe bei einem Batch. Habe zwei .txt Dateien die ich in eine .txt zusammen fügen ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 1 TagWindows 107 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 1 TagSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless8 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Windows Server
Ping auf einen bestimmten Server nicht möglich
gelöst Frage von a.thierWindows Server7 Kommentare

Hallo, ich habe folgendes Problem. srv-dc1: Ping srv-nav > geht Ping srv-exchange > geht nicht srv-exchange: Ping srv-dc1 > ...