ghosthacker
Goto Top

Ausgabe der Dateien in einem Verzeichnis mit aktuellem Verzeichnisnamen davor

Hi Leute,

ich brauche eine Batch-Datei, die mir alle Dateien im aktuellen Verzeichnis in eine Textdatei schreibt - was weiter nicht das Problem wäre - und vor jeder Zeile noch den aktuellen Verzeichnisnamen setzt.

Ich krieg es hin, dass er mir alle Dateien im aktuellen Verzeichnis in ne Textdatei schreibt (
dir /S /o:n /b  > datei.txt
) und ich kann auch den aktuellen Ordnernamen ermitteln (
@for  %%i in (%cd:\=","%) do @set "lastDir=%%~i"  
), aber ich krieg es nicht hin, dass er mir vor jede Zeile in der Textdatei noch "Ordnername\" schreibt (in der Textdatei natürlich ohne Anführungszeichen).

Kann mir einer von euch da evtl. bei helfen?

Lg ghosthacker

Content-Key: 173420

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

Ausgedruckt am: 28.03.2024 um 18:03 Uhr

Mitglied: bastla
bastla 20.09.2011 um 18:12:11 Uhr
Goto Top
Hallo ghosthacker und willkommen im Forum!

So ganz kann ich das Problem nicht nachvollziehen - wenn Du schon "%lastDir%" ermittelt hast (BTW: ich würde das eher so:
for %%i in (%cd%) do set "lastDir=%%~nxi"
machen), kannst Du das doch in der folgenden Schleife
for /f "delims=" %%i in ('dir /b /on /a-d') do >>datei.txt echo %lastDir%\%%i
mit ausgeben lassen ...

[Edit] Falls das "dir /s ..." ernst gemeint war (und ich das Ganze richtig verstehe), dann ev so:
for /f "delims=" %%i in ('dir /s /b /a-d') do for %%a in ("%%~i\..") do >>datei.txt echo %%~nxa\%%~nxi
[/Edit]

Grüße
bastla
Mitglied: ghosthacker
ghosthacker 20.09.2011 um 18:24:50 Uhr
Goto Top
mein problem war, dass ich keine ahnung hatte, wie ich es hinkriege, dass der mir das in jeder zeile nochmal davorschreibt und nicht nur am anfang.... so ganz versteh ich deinen code zwar auch nicht, aber er funktioniert :D.

ich muss dazu vllt sagen, dass ich absoluter batch-neuling bin und auch das mit dem aktuellen ordnernamen schon ergoogeln musste.... das mit der dateiausgabe hab ich allerdings noch selbst hingekriegt :D
Mitglied: bastla
bastla 20.09.2011, aktualisiert am 18.10.2012 um 18:48:26 Uhr
Goto Top
Hallo ghosthacker!
so ganz versteh ich deinen code zwar auch nicht
Ein unhaltbarer Zustand face-wink ...

Die zweite Schleife macht ja nix anderes, als die Ausgabe des
dir /b /on /a-d
also des sortierten Inhaltsverzeichnisses nur der Dateien, zeilenweise zu verarbeiten (wobei durch "delims=" erreicht wird, dass bei ev vorkommenden Leerzeichen nicht abgeschnitten wird) - dann kann die jeweilige Zeile entsprechend ergänzt werden.

Mehr zur Thematik findest Du in Tutorial zur FOR-Schleife ...

Grüße
bastla
Mitglied: ghosthacker
ghosthacker 20.09.2011 um 18:51:36 Uhr
Goto Top
mir ist grade aufgefallen, dass - wenn im ordnernamen leerzeichen enthalten sind, das ganze nicht mehr funktioniert - müsste das dann nicht auch mit delims gehen?
mein batchcode sieht im moment so aus:

for %%i in (%cd%) do set "lastDir=%%~nxi"  
for /f "delims=" %%i in ('dir /b /on /a-d *.mp3') do >>%lastDir%.m3u echo %lastDir%\%%i  

das ganze dient dazu, für einen ordner, in dem mp3 dateien sind, eine m3u wiedergabeliste zu erstellen...

lg ghosthacker
Mitglied: bastla
bastla 20.09.2011 um 18:56:29 Uhr
Goto Top
Hallo ghosthacker!

So sollte es besser gehen:
for %%i in ("%cd%") do set "lastDir=%%~nxi"  
for /f "delims=" %%i in ('dir /b /on /a-d *.mp3') do >>"%lastDir%.m3u" echo %lastDir%\%%i  
Grüße
bastla

P.S.: Verwende doch bitte die passende für Deine Code-Schnipsel (lässt sich auch noch nachholen face-wink) ...
Mitglied: ghosthacker
ghosthacker 20.09.2011 um 19:13:17 Uhr
Goto Top
Vielen Dank, so funktioniert das einwandfrei face-smile.

Das mit den Codeschnipseln tut mir leid, ich wusste nicht, dass ihr auch so eine Funktion habt - kannte das bisher nur vom Java-Forum, hol ich sofort nach.

Lg ghosthacker
Mitglied: Skyemugen
Skyemugen 20.09.2011 um 23:14:07 Uhr
Goto Top
[OT]Aloha und auch willkommen im Forum!
Zitat von @ghosthacker:
Das mit den Codeschnipseln tut mir leid, ich wusste nicht, dass ihr auch so eine Funktion habt - kannte das bisher nur vom Java-Forum, hol ich sofort nach.
Ich möchte an dieser Stelle einfach mal offtopic werden und sagen: Super! Ein Mann, ein Wort und verstanden wurde es auch, was bin ich froh, dass es noch Leute gibt, die Funktionen auch sinnvoll zu nutzen wissen, sehr schön - wenn doch nur viele Neueinsteiger hier so handeln würden *träum*

greetz André [/OT]