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, 4205 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
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 16 StundenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 16 StundenSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 1 TagDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 1 TagSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
Exchange Server
Exchange Postfach Einbindung Betriebs-rat -Arzt, Bewerbung .
gelöst Frage von YellowcakeExchange Server23 Kommentare

Hey ich habe da mal eine Denksport Aufgabe bekommen Genutzt wird ein Exchange Server 2010. hier gibt es den ...

Windows Server
Downgrade von Windows Server 2016 auf 2012 - Wie vorgehen?
Frage von EstefaniaWindows Server13 Kommentare

Guten Ich habe eine Frage an Erfahrene unter euch. Durch einen InPlace Upgrade wurde Windows Server 2012 auf die ...

Datenschutz
Telematikinfrastruktur Erfahrungsaustausch
Frage von MOS6581Datenschutz12 Kommentare

Moin, unter meinen Kunden befinden sich auch einige Ärzte, welche sich künftig mit der Telematikinfrastruktur-Geschichte der Gematik herumärgern dürfen. ...

Windows Server
Delgegierte OU via RDP verwalten - Objektverwaltung zuweisen
gelöst Frage von TOAOICEWindows Server12 Kommentare

Hallo, ich habe folgendes Problem. Ich möchte in meiner Domäne (Server2016), einer Gruppe (OUAdmin) Berechtigungen auf die OU Test ...