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 Variable auslesen und Text ab einem bestimmten Zeichen in eine neue Variable schreiben

Mitglied: 3xplor3r

3xplor3r (Level 1) - Jetzt verbinden

13.11.2011 um 14:36 Uhr, 4237 Aufrufe, 7 Kommentare

Hallo liebe Gemeinde,

ich möchte aus einer Variable, die innerhalb einer FOR-Schleife deklariert wird ab einem bestimmten Zeichen den gesamten nachfolgenden Text in die gleiche oder eine andere Variable verschieben.

for /R "%download%" %%i in (*.mp3) do (
for /F "tokens=* delims=\" %%j in ("%%i") do ?)

In dieser geschachtelten FOR-Schleife lese ich alle *.mp3 Dateien ab dem Verzeichnis %download% aus. Jetzt möchte ich diese Dateien noch neu encodieren, was dann an der Stelle des ? folgen würde. Da allerdings x mp3-Dateien verarbeitet werden, bekomme ich ein Problem mit den Dateinamen, da lame nur ein statisches Ausgabeverzeichnis unterstützt.

lame -b 192 -B 256 -m j -V 2 -h --vbr-new -t --priority 4 --brief "%%i" "%upload%%%k"

Dieses wäre das %upload%-Verzeichnis bspw. C:\Dokumente und Einstellungen\Upload. Nun würde das Encodieren dazu führen, dass eine mp3-Datei mit dem Namen Upload.mp3 in diesem Verzeichnis erzeugt werden würde. Daher jetzt der Gedanke, dass ich in die Variable %%k den Dateinamen des Musikstückes speichere. Die Musikdatei liegt bspw. im Verzeichnis C:\Dokumente und Einstellungen\Download\Titel1.mp3. Dazu wird nun der Teil benötigt, der hinter dem letzten \ steht. Mit anderen Worten muss ich das letzte \ oderr wenn man von hinten liest das erste \ finden und dann den Text der dahinter oder davor folgt in eine neue Variable speichern, es kann auch die gleiche sein, falls technisch möglich.

Darauf hin könnte ich beim Aufruf von lame für das Ausgabeverzeichnis diese Variable anhängen, wodurch der Name des Titels gleich bleibt.

Nur weiß ich im Moment noch nicht, wie ich das realisieren könnte.

LG
3x
Mitglied: pieh-ejdsch
13.11.2011 um 15:36 Uhr
moin 3xplor3r,

wenn Du bestimmte Befehle an der CMD benutzt - hilft bei Problemen die ...

... ja die Hilfe (gleich mit den Expandierten ausortiert)
01.
for/?|find /i "%~nxI"
Friemler hat das hier im Tutorial zur FOR-Schleife nochmal zusammengefasst.

Gruß Phil
Bitte warten ..
Mitglied: Biber
13.11.2011 um 15:38 Uhr
Moin 3xplor3r,

willkommen im Forum.

Wenn ich deine Anforderung richtig verstanden habe, dann ist keine Zwischenvariable nötig.
Ich würde es nach folgendem proof of concept am CMD-Prompt umsetzen:
[Anmerkung: Da du so lange Pfade verwendest, sollest du dir mit "Set mode con cols=166 lines=55" ein weing Platz zum Testen schaffen]
>set "lameparms=-b 192 -B 256 -m j -V 2 -h --vbr-new -t --priority 4 --brief" 
 
(=15:25:40  d:\Biber\temp=) 
>set "upload=x:\oder y\upload" & set "download=C:\Dokumente und Einstellungen\Download" 
 
(=15:25:55  d:\Biber\temp=) 
>@for /R "%download%" %i in (*.mp3) do @echo DEMO: lame %lameparms% "%~i" "%upload%\%~nxi" 
DEMO: lame -b 192 -B 256 -m j -V 2 -h --vbr-new -t --priority 4 --brief "C:\Dokumente und Einstellungen\Download\Der letzte Titel.mp3" "x:\oder y\upload\Der letzte 
tel.mp3" 
DEMO: lame -b 192 -B 256 -m j -V 2 -h --vbr-new -t --priority 4 --brief "C:\Dokumente und Einstellungen\Download\Der Titel 1.mp3" "x:\oder y\upload\Der Titel 1.mp3" 
DEMO: lame -b 192 -B 256 -m j -V 2 -h --vbr-new -t --priority 4 --brief "C:\Dokumente und Einstellungen\Download\Der Titel 2.mp3" "x:\oder y\upload\Der Titel 2.mp3"
Sollte also mit dem Einzeiler, der mit "@FOR /R "%download%"...." beginnt nach Definition der drei Variablen ohne weiteren Heckmeck ausreichen.

Grüße
Biber
Bitte warten ..
Mitglied: 3xplor3r
13.11.2011 um 17:10 Uhr
Hallo Biber,

danke erstmal für Deine Antwort. Ich habe zum Test

@for /R "%download%" %%i in (*.mp3) do echo "%%i\%~nxI"

in die Batch-Datei eingetragen. Als Ausgabe hätte ich bspw. Der Titel 1.mp3 erwartet. Leider konnte die Batch-Datei nicht ausgeführt werden. Lasse ich %~nxI weg, wird der gesamte Pfad ausgegegben.
Bitte warten ..
Mitglied: Biber
13.11.2011 um 17:19 Uhr
Moin 3xplor3r,

in einer Batchdatei müssen die Prozentzeichen bei allen Laufvariablen verdoppelt werden, also auch %%~nxi (statt %~nxi).

Und bitte beachten: bei diesen dynamischen Variablen wird zwischen Klein- und Grossschreibung unterschieden, also ist %i <>%I (oder %a<>%A)

Grüße
Biber
Bitte warten ..
Mitglied: 3xplor3r
13.11.2011 um 18:49 Uhr
Ahh das habe ich übersehen, danke Dir. Die folgende Lösung funktioniert so wie sie soll.

@for /R "%download%" %%i in (*.mp3) do lame %lame% "%%i" "%upload%\%%~nxi"

So werden die Dateien in das Verzeichnis %upload%\01 Der Titel.mp3 geschrieben.
Bitte warten ..
Mitglied: Skyemugen
14.11.2011 um 07:48 Uhr
[OT]Aloha Jungs!

Was'n los hier, seht ihr schon Dinge, die nicht da sind oder warum gibt niemand dem TE den Vorschlag zur Ansichtsverbesserung der Skriptschnipsel im Forum per <code></code> Codeformatierung?

Ihr lasst nach

greetz André[/OT]
Bitte warten ..
Mitglied: Biber
14.11.2011 um 08:07 Uhr
[OTii]
Zitat von Skyemugen:
[OT]Aloha Jungs!

Was'n los hier, seht ihr schon Dinge, die nicht da sind oder warum gibt niemand dem TE den Vorschlag zur Ansichtsverbesserung
der Skriptschnipsel im Forum per <code></code> Codeformatierung?
Haben wir gesehen. Das Verfahren wurde wegen Geringfügigkeit eingestellt.
... drei verschüchterte skizzerten Halbzeilen.... Schwamm drüber.

Zudem hat er das noch gestern am späten Nachmittag auch von bastla aufs Brot bekommen.

greetz André[/OT]
Grüße zurück
Biber
[/OTii]
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Text Datei bestimmte Bereiche lesen und in neue Text schreiben

gelöst Frage von Doktore1Batch & Shell3 Kommentare

Hallo @ all, bin neu hier und habe sehr wenig Erfahrung mit batch Skripten. Ich würde mich sehr freuen ...

Batch & Shell

Mehrere Ordnernamen auslesen und in eine Variable schreiben

gelöst Frage von schmithoBatch & Shell5 Kommentare

Hallo zusammen, ich versuche verzweifelt eine Lösung eines Problems zu finden, wie ich den Namen mehrere Ordner in eine ...

Batch & Shell

Text Zeilenweise auslesen und variable überprüfen

Frage von BruendlBatch & Shell11 Kommentare

Moin Moin, ich habe eine Textdatei mit folgendem Inhalt: ich möchte jetzt gerne die beiden Werte, die von einem ...

Batch & Shell

Batch - Variable in bestimmte Textzeile schreiben

Frage von iWolf2015Batch & Shell4 Kommentare

Hallo, ich möchte gerne eine Variable in die n-te Zeile eines .txt Dokumentes schreiben. Ich habe schon verschiedene Ansätze ...

Neue Wissensbeiträge
Linux Netzwerk

Installation eines Logservers mit Loganalyzer als Debian-VM auf Hyper-V

Anleitung von lcer00 vor 14 StundenLinux Netzwerk

Zuerst sei auf den schönen Beitrag von aqui hier im Forum verwiesen, in dem die loganalyzer-installation bereits beschrieben ist: ...

Humor (lol)
Antennagate 2018
Information von magicteddy vor 14 StundenHumor (lol)2 Kommentare

Da haut der angekaute Elektronikhersteller die teuersten Geräte auf den Markt und bekommt anscheinend die Basics mal wieder nicht ...

Datenschutz

Die Datenkrake Google verlängert ihr Arme mal wieder ein wenig, automatische Anmeldung

Tipp von magicteddy vor 1 TagDatenschutz3 Kommentare

Benutzer mit einem Google Account und gespeicherten Zugangsdaten werden von chrome 69 automatisch bei Google angemeldet, natürlich alles zum ...

Verschlüsselung & Zertifikate
Meine Wissenssammlung zu Bitlocker
Erfahrungsbericht von DerWoWusste vor 2 TagenVerschlüsselung & Zertifikate3 Kommentare

Die Motivation für diesen Beitrag waren die vielen Posts rund um dieses Thema, die deutlich machen, wie viele Einzelaspekte ...

Heiß diskutierte Inhalte
E-Mail
Welche ist die beste E-Mail Groupware für die Zukunft?
Frage von ITCrowdSupporterE-Mail24 Kommentare

Guten Tag allerseits :) Ich möchte mich mit einer Frage heute mal an die Schwarmintelligenz wenden. Aktuell befasse ich ...

Firewall
Wesyb Offline
Frage von DkuehlbornFirewall14 Kommentare

Hallo Kollegen, ein Kunde hat von Wesyb die Sicherheitslösung im Einsatz. Seit August scheint deren Internetseite nicht mehr verfügbar ...

Video & Streaming
DVD auf Festplatte sichern
Frage von Thor01Video & Streaming13 Kommentare

Hallo, mittlerweile hat meine DVD Sammlung ein alter erreicht wo die eine oder andere DVD schon das Zeitliche gesegnet ...

Server-Hardware
Empfehlung für Hardware eines Software Routers
Frage von janosch12Server-Hardware12 Kommentare

Hallo Gemeinde, ich brauche von euch ein paar Tipps in Sachen Router-Hardware. Aktuell haben wir auf einem 2 HE ...