jon-doe

Per Batch Überordnernamen für Datei übernehmen

Moin,

um einen 14 Jahre alten Thread ruhen zu lassen starte ich meines Anliegens wegen einen neuen.

Ich habe folgende Batchdatei von @bastla aus dem Thread übernommen:

@echo off & setlocal
if "%~1" neq "" if exist "%~1\" goto :DoIt  
echo Bitte einen Ordner uebergeben
pause
goto :eof

:DoIt
set "Ordner=%~nx1"  
copy /b "%~1\*.mp3" "%userprofile%\Desktop\%Ordner%.mp3"  

Leider verzweifel ich an der kleinen Änderung, dass ich gerne an Stelle des Ordnernamens, welcher per D&D übergeben wird, den Namen des Ordners verwenden möchte, in dem sich der D&D-Ordner befindet.

Ich nehme an, es handelt sich um die Zeile
set "Ordner=%~nx1"  
. n steht wohl für name und x für Erweiterung, leider kann ich nicht rausfinden, wie ich das zum Überordner ändern muss und bitte daher euch um Hilfe.

<edit>Alternativ wäre auch möglich, den Überordner selbst per D&D auf die *.bat zu ziehen und dann die *.mp3 aus den Unterordnern zusammen zu fügen, was mir allerdings auch nicht gelingen will.</edit>

Vielen Dank für eure Hilfe im Vorraus

Jon
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 2356439866

Url: https://administrator.de/forum/per-batch-ueberordnernamen-fuer-datei-uebernehmen-2356439866.html

Ausgedruckt am: 03.05.2025 um 07:05 Uhr

1915348599
1915348599 31.03.2022 aktualisiert um 14:15:04 Uhr
Goto Top
Zitat von @Jon-Doe:


Leider verzweifel ich an der kleinen Änderung, dass ich gerne an Stelle des Ordnernamens, welcher per D&D übergeben wird, den Namen des Ordners verwenden möchte, in dem sich der D&D-Ordner befindet.

set "parentfolder=%~dp1"  
echo %parentfolder%
Jon-Doe
Jon-Doe 31.03.2022 um 15:32:08 Uhr
Goto Top
Zitat von @1915348599:
set "parentfolder=%~dp1"  
echo %parentfolder%

Vielen Dank für die schnelle Antwort. Leider kommt also Echo, wenn man Ordner 3 (aus Ordner 2) per D&D auf die *.bat zieht, der komplette Pfad des Überordners

Laufwerk:\Ordner 1\Ordner 2\

und nicht nur dessen Name

Ordner 2
heraus.
1915348599
Lösung 1915348599 31.03.2022 aktualisiert um 16:33:26 Uhr
Goto Top
Auch kein Problem wusste ich nur nicht das du es so willst, ... Ist aber auch kein Problem
set "parentfolder=%~dp1"  
for /f "delims=" %%a in ("%parentfolder:~0,-1%") do set "parentfolder=%%~nxa"  
echo %parentfolder%
Jon-Doe
Jon-Doe 31.03.2022 um 16:18:39 Uhr
Goto Top
Ich habe

for /f "delims=" %%a in ("%~dp1") do set "parentfolder=%%~nxa"  
echo %parentfolder%

in der Batch
@echo off & setlocal
if "%~1" neq "" if exist "%~1\" goto :DoIt  
goto :eof

:DoIt

for /f "delims=" %%a in ("%~dp1") do set "parentfolder=%%~nxa"  
copy /b "%~1\*.mp3" "%userprofile%\Desktop\ot\%parentfolder%.mp3"  

eingesetzt und bekomme nun ein .mp3 ohne Namen im Ordner "ot" auf dem Desktop.

Bei der Ausgabe

echo %parentfolder%

bekomme ich

ECHO ist eingeschaltet <ON>

ausgegeben, dabei habe ich die lines C&P um Tippfehler zu vermeiden.
1915348599
1915348599 31.03.2022 aktualisiert um 16:35:06 Uhr
Goto Top
Uups Backslash vergessen, sorry, s. Korrektur im Kommentar oben.
Jon-Doe
Jon-Doe 31.03.2022 um 16:54:50 Uhr
Goto Top
Jetzt klappt es!

Vielen Dank für die Hilfe und Geduld!

Falls künftig jemand das gleiche Vorhaben vorhaben sollte, hier einmal komplett:
@echo off & setlocal
if "%~1" neq "" if exist "%~1\" goto :DoIt  
goto :eof

:DoIt
set "parentfolder=%~dp1"  
for /f "delims=" %%a in ("%parentfolder:~0,-1%") do set "parentfolder=%%~nxa"  
copy /b "%~1\*.mp3" "%userprofile%\Desktop\ot\%parentfolder%.mp3"