jiggyjones
Goto Top

Batch der an meine Files die in unterordner sind einen Kürzel vorne mit ranfügt

Hallo,

ich habe verschiedene unterordner die nummeriert sind und zwar so :

1
2
3
4
5
usw..

jetzt möchte ich das meine wave files die dort in den unterordnern sind automatisch diese formatierung kriegen:
ordner 1 -> 1_blabla.wav , 1_bibibi.wav, 1_juhuu.wav
ordner 2 -> 2_weiterbla.wav
ordner 3 -> 3_weiterweirter.wav
usw..
in den ordner befinden sich mehrere files und die sollen dann jeweils immer am anfang die zahl des ordners und einen unterstrich haben, jeder ordner hat eine andere zahl und diese soll dann bei all den in den ordnern befindenen daten vorne rangehängt werden..thats it

ich hoffe ich konnts verständlich erklären..

vielen dank schonmal

mfg jiggy
Kommentar vom Moderator Biber am 02.02.2011 um 21:27:21 Uhr
Ich behalt dich im Auge... ein Dauer-Rückzug auf "ich kann nun mal keine Batch selbst schreiben"... nö.
Wenn das so bleibt, werde ich auch ein paar Takte dazu sagen.

Content-ID: 159987

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

Ausgedruckt am: 20.11.2024 um 11:11 Uhr

bastla
bastla 02.02.2011 um 17:12:13 Uhr
Goto Top
Hallo jiggyjones!

Soferne es alle Unterordner eines gegebenen Basisordners sein sollen, (ungetestet) etwa so:
@echo off & setlocal
set "Basis=D:\Dein Überordner"  

pushd "%Basis%"  
for /d %%i in (*.*) do for /f "delims=" %%a in ('dir /b /a-d "%%i" 2^>nul') do echo ren "%%i\%%a" "%%~nxi_%%~nxa"  
popd
Wegen des "echo" vor dem "ren" werden alle Umbenenn-Befehle nur angezeigt, aber noch nicht ausgeführt.

Grüße
bastla
jiggyjones
jiggyjones 02.02.2011 um 17:18:33 Uhr
Goto Top
ich seh grad in zeile 2 den eintrag von dir.. Dein überordner

kann man den batch nicht so schreiben das ich die ordner 1 bis 10 zb einfach auf die batch ziehe und die files innerhalb der jeweiligen ordner dann umbenannt werden?

mfg jiggy
Skyemugen
Skyemugen 02.02.2011, aktualisiert am 18.10.2012 um 18:45:42 Uhr
Goto Top
Aloha,

[OT]
achja bastla, damals wollte er es noch so haben (was es hier ja noch nie gab ...) und jetzt ein wenig anders - aber dich stört das nicht, du Samariter du ^.^
Du müsstest inzwischen ja fast für jeden ... ein passendes Skript haben, das du nur noch c&p brauchst, oder? *lach*
[/OT]

greetz André

edit: yeah, wieder das mit dem Ordner auf die batch ziehen (und am Ende kommt es dann wieder in die Excel-Tabelle, gelle)
jiggyjones
jiggyjones 02.02.2011 um 17:29:06 Uhr
Goto Top
skymugen ich brauche jetzt genau etwas für diesen vorgang und keine excel tabelle oder so...

ich versteh nicht wieso du dich jetzt aufregst? die andere batch von dem anderen threat benutze ich auch...

ich hab jetzt schon einige batches die mir diverse arbeitsvorgänge erleichtern und nun ja..es kommen ab und zu neue dazu...dazu ist das forum hier odeR?
bastla
bastla 02.02.2011, aktualisiert am 18.10.2012 um 18:45:42 Uhr
Goto Top
Hallo jiggyjones!

Kann man, aber vielleicht auch Du - versuch's doch einfach mal ...
@Skyemugen
Wie Du drüben schon richtig angemerkt hast: Neu schreiben hält fit face-wink (und zumindest für die paar Zeilen würde das Suchen länger dauern, als wenn ich es gleich hintippsle) ...

Grüße
bastla
bastla
bastla 02.02.2011 um 17:40:46 Uhr
Goto Top
Hallo jiggyjones!
dazu ist das forum hier odeR?
Nicht mal ich, der ich ja nun wirklich gerne mal ein Script in der x-ten Variation (und oft so gut wie fertig) bastle, sehe dieses Forum als Abholstelle für mal eben so in Auftrag gegebene maßgeschneiderte Batches / Scripts, sondern durchaus als Basis für das Entwickeln eigener Fähigkeiten ...

Grüße
bastla
Skyemugen
Skyemugen 02.02.2011 um 17:41:43 Uhr
Goto Top
Aloha jiggyjones,

keep cool, wer regt sich denn hier auf? Sind doch alle völlig entspannt ;)

Gut, dann dieses Mal eben ohne Excel - hätte ja kommen können, dann hätte man zumindest sich erinnert und gewusst, wo man suchen muss. (Und irgendwann schusterst du die eventuell sogar selber zusammen aus dem gegebenen Material)

greetz André

edit: Aber ein bisschen hat es schon was von 9Live ... ich brauche jetzt einen Gewinner
jiggyjones
jiggyjones 02.02.2011 um 17:51:21 Uhr
Goto Top
ja was soll ich dazu sagen, ich kann halt keine batches schreiben und bin jedesmal aufs neue von euren fähigkeiten fasziniert...

könnt ich sowas selbst machen würd ich vielleicht anderen hier helfen können..aber es ist nunmal nicht so..sonst hätte ich auch aus eigener hand den letzten batch so verändert das er genau das macht was ich will...nunja manchmal sind es halt auch mal anfragen die für euch nicht fordernd udn einfach sind ...ich kanns nunmal nicht ändern..sorry
bastla
bastla 02.02.2011 um 17:54:31 Uhr
Goto Top
Hallo jiggyjones!

Wie weit bist Du denn bei Deinen Bemühungen, den Batch nachzuvollziehen und anzupassen gekommen, woran scheitert's?

Grüße
bastla

[Edit] @Skyemugen: Ich schreib halt lieber ein Stück Batch, als 9live zu schauen ... face-wink [/Edit]
Skyemugen
Skyemugen 02.02.2011 um 17:57:27 Uhr
Goto Top
Aloha,

haha ich bin (um Himmels Willen) weit entfernt im batch ein wahrer Könner zu sein, learning by doing sowie Rumtüfteln für Leute, die hier mal das oder jenes wollen (auch wenn ich selbst am Ende nicht die Lösung bringe) - das bringt das Lernfeeling und die Erfahrung und genau dazu will man hier auch motivieren, denn grundsätzlich kann das meiste der Anwender selbst erarbeiten / erlernen. Und glaube mir: Bei jedem Erfolg freut man sich dann, dass es klappt ^.^

greetz André

edit: @bastla, ja kann ich nachvollziehen (aber 1x 9Live gesehen, kennt man ja das Grundprinzip ^.^)
jiggyjones
jiggyjones 02.02.2011 um 18:01:03 Uhr
Goto Top
also ich hab ehrlich gesagt 0 plan vom batchen bastla...ich dacht eher ich kann hier meine nöte reinposten und würde euch dann mit diversen aufträgen/hilfeanfragen euch ein bisschen fordern face-smile nunja nicht alle meiner fragen sind wirklich umfangreich face-smile
bastla
bastla 02.02.2011 um 18:14:11 Uhr
Goto Top
Hallo jiggyjones!
also ich hab ehrlich gesagt 0 plan vom batchen bastla
... und Du möchtest Dir diesen Zustand erhalten?

Falls nein, eine kurze Erklärung zu meinem Ansatz oben (der darauf aufbaut, dass mehrere Ordner bearbeitet werden sollten):

Per "pushd" wird in einen bestimmten Ordner gewechselt, wodurch man sich die Berücksichtigung von Pfaden erspart - "popd" ist das Gegenstück (und sollte der Ordnung halber auch immer ausgeführt werden)
for /d %%i in (*.*) do
geht (wie sich inzwischen herausgestellt hat, unnötiger Weise) alle Unterordner durch und stellt diese als %%i zur Verfügung
for /f "delims=" %%a in ('dir /b /a-d "%%i" 2^>nul') do
macht dies für alle Dateien des Ordner %%i mit dem Ergebnis, dass in %%a der Dateiname + Typ (aber ohne Pfad) steht.
ren "%%i\%%a" "%%~nxi_%%~nxa"
(das Test-"echo" lasse ich mal weg) bedeutet nun: Benenne die Datei "%%i\%%a" (durch %%i wird jetzt auch der Pfad hinzugefügt) so um, dass sich der neue Name aus dem Namen des Ordners (+ Typ: falls es im Ordnernamen zumindest einen Punkt gäbe, würde der Teil nach dem letzten Punkt als "Extension" - von da her auch das "x" - betrachtet) ohne Pfadangabe, dem "_" und dem Dateinamen (eigentlich wäre auch "%%a" schon genug) zusammensetzt.

Wenn Du nun noch weißt (und das kannst Du bereits wissen), dass ein dem Batch (auch per Drag & Drop) übergebener Ordner als %1 (und eben nicht als %%i) ankommt, sollte sich doch daraus etwas machen lassen ...

Grüße
bastla
jiggyjones
jiggyjones 03.02.2011 um 11:26:09 Uhr
Goto Top
ganz ehrlich das übersteigt mein wissen komplett...
bastla
bastla 03.02.2011 um 11:50:59 Uhr
Goto Top
Hallo jiggyjones!

Dann vergleich mal Deine Ansätze mit
@echo off & setlocal
for /f "delims=" %%a in ('dir /b /a-d %1 2^>nul') do echo ren "%~1\%%a" "%~nx1_%%~nxa"  
pause
Das "echo" in Zeile 2 und "pause" werden natürlich im Ernstfall nicht benötigt ...

Grüße
bastla
Skyemugen
Skyemugen 03.02.2011 um 12:05:51 Uhr
Goto Top
Aloha,

jiggyjones - dann erweitere dein Wissen doch einfach ;)

Der Mensch entwickelt sich weiter.

greetz André
jiggyjones
jiggyjones 03.02.2011 um 12:25:49 Uhr
Goto Top
ren "%%i\%%a" "%%~nxi_%%~nxa" <-
in:
ren "%1\%%a" "%%~nxi_%%~nxa" <-?
jiggyjones
jiggyjones 03.02.2011 um 12:30:13 Uhr
Goto Top
kann man vor diesem prozess noch eine änderung vornehmen?

die files in den ordnern haben eine 2stellige zahl am anfang...sie ist aber nicht fortlaufend wie 01 02 03 sondern 04 06 09
könnte man diese 2 ziffern entfernen und eine fortlaufende zahl erstellen? und dann diesen batch hier greifen lassen? so das zuerst
die unterschiedlichen zahlen in 01 02 03 04 05 06 usw geändert werden und dann die 1_01 1_02 und 2_01 2_02 usw..dran gehängt wird?
bastla
bastla 04.02.2011 um 10:46:37 Uhr
Goto Top
Hallo jiggyjones!
die files in den ordnern haben eine 2stellige zahl am anfang
Alle im Ordner enthaltenen Dateien?
die 1_01 1_02 und 2_01 2_02 usw..dran gehängt wird?
Was soll denn bei den letzten beiden Beispielen die führende "2" bedeuten?

Grüße
bastla
jiggyjones
jiggyjones 04.02.2011 um 11:01:16 Uhr
Goto Top
Hi Baslta,

ja richtig bei allen files in dem ordner sind zweistellige zahlen vorne drann die aber nicht nacheinander laufen sondern halt so:
01schallala.wav
04schallallelele.wav
09bubibibidu.wav
die sind dann in 10 verschiedenen ordnern quasi:
\musik\1\
\musik\2\
\musik\3\
\musik\4\

und jetzt soll es halt so sein das die ordnerzahl am anfang der file ran soll und zwar in diesem format 1_ oder 2_ oder 10_
und dahinter soll dann eine fortlaufende zahl anhand der files sein sprich :
im ordner musik\1\
1_01schallala.wav
1_02schallallelele.wav
1_03bubibibidu.wav
usw...
und wären jetzt quasi die selben files im ordner: \musik\2\:
2_01schallala.wav
2_02schallallelele.wav
2_03bubibibidu.wav
oder wären andere files im ordner \musik\3\:
3_01schallala.wav
3_02schallallelele.wav
3_03bubibibidu.wav

sprich die 1_ <- steht für den ordner und hinter dem _ kommt eine fortlaufende nummerierung face-smile

vielen dank im vorraus bastla

mfg jiggy
Skyemugen
Skyemugen 04.02.2011 um 11:01:26 Uhr
Goto Top
Aloha,

und ich dachte schon ich wäre zu dumm, das gewollte zu verstehen aber da geht's mir wohl nicht alleine so zum Glück.

greetz André

edit: Ah, vor der Zahl ist nach der Zahl, dachte schon, er will nochmal Zahlen hinter dem Dateinamen haben. So sieht die Sache ja schon anders (und logischer) aus.
bastla
bastla 04.02.2011 um 11:06:05 Uhr
Goto Top
Hallo jiggyjones!

Unter der Annahme, dass Du weiterhin die Ordner per "Drag & Drop" übergeben willst, etwa so:
@echo off & setlocal
:Loop
if #%1#==## pause & goto :eof
set /a Nr=100
for /f "delims=" %%a in ('dir /b /a-d /on %1 2^>nul^|findstr /b "[0-9][0-9]"') do set "Name=%%~nxa" & call :ProcessFile %1  
shift
goto :Loop

:ProcessFile
set /a Nr+=1
echo ren "%~1\%Name%" "%~nx1_%Nr:~-2%%Name:~2%"  
goto :eof
Grüße
bastla
jiggyjones
jiggyjones 04.02.2011 um 11:17:58 Uhr
Goto Top
yeees, perfekt face-smile hab das echo von zeile 11 weggenommen und er hats dann gleich so durchgeführt...vielen vielen dank bastla ♥