Rename von Dateien auf alle Unterordner ausdehnen
Hallo zusammen,
habe mir eine Batchdatei geschrieben, um schnell Dateien auf einem Mediaserver verschwinden zu lassen und wiederherzustellen.
Möchte gern diese Schleifen auf alle Unterordner ausdehnen und komme nicht weiter. Wäre für Hilfe Dankbar.
Verschwinde-Batch:
@echo off
:1
if not exist *.avi goto 2
ren *.avi "*.a"
goto 1
:2
if not exist *.mp4 goto 3
ren *.mp4 "*.4"
goto 2
:3
if not exist *.mpg goto 4
ren *.mpg "*.m"
goto 3
:4
if not exist *.wmv goto 5
ren *.wmv "*.w"
goto 4
:5
if not exist *.flv goto 6
ren *.flv "*.f"
goto 5
:6
if not exist *.swf goto 7
ren *.swf "*.s"
goto 6
:7
if not exist *.mov goto 8
ren *.mov "*.v"
goto 7
:8
if not exist *.mkv goto 9
ren *.mkv "*.k"
goto 8
:9
if not exist *.ram goto fertig
ren *.ram "*.r"
goto 9
:fertig
exit
Funktioniert nur im ausgeführtem Ordner, möchte aber alle Unterordner mit durchlaufen lassen.
Hätte da jemand eine effektive Lösung?
Gruß
Wolf56
habe mir eine Batchdatei geschrieben, um schnell Dateien auf einem Mediaserver verschwinden zu lassen und wiederherzustellen.
Möchte gern diese Schleifen auf alle Unterordner ausdehnen und komme nicht weiter. Wäre für Hilfe Dankbar.
Verschwinde-Batch:
@echo off
:1
if not exist *.avi goto 2
ren *.avi "*.a"
goto 1
:2
if not exist *.mp4 goto 3
ren *.mp4 "*.4"
goto 2
:3
if not exist *.mpg goto 4
ren *.mpg "*.m"
goto 3
:4
if not exist *.wmv goto 5
ren *.wmv "*.w"
goto 4
:5
if not exist *.flv goto 6
ren *.flv "*.f"
goto 5
:6
if not exist *.swf goto 7
ren *.swf "*.s"
goto 6
:7
if not exist *.mov goto 8
ren *.mov "*.v"
goto 7
:8
if not exist *.mkv goto 9
ren *.mkv "*.k"
goto 8
:9
if not exist *.ram goto fertig
ren *.ram "*.r"
goto 9
:fertig
exit
Funktioniert nur im ausgeführtem Ordner, möchte aber alle Unterordner mit durchlaufen lassen.
Hätte da jemand eine effektive Lösung?
Gruß
Wolf56
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 257478
Url: https://administrator.de/contentid/257478
Ausgedruckt am: 19.11.2024 um 05:11 Uhr
9 Kommentare
Neuester Kommentar
Powershell:
und das ganze dann wieder rückgängig
Gruß jodel32
gci "c:\Ordner\*" -include *.mp4,*.avi,*.mpg,*.mkv,*.flv,*.mov,*.swf,*.ram,*.wmv -recurse | rename-item -NewName {"$($_.Name).x"} -Force
gci "c:\Ordner\*.x" -recurse | rename-item -NewName {($_.Name -replace '\.x$','')} -Force
Moin,
wieso gilt der als gelöst wenn er es nicht ist?
Ordnernamen angeben
*.txt anpassen
"%%~nf.t" -> .t ist die gewünschte Dateiendung -> auch anpassen
Geht sicher auch eleganter
Grüße
wieso gilt der als gelöst wenn er es nicht ist?
@echo off
set ordnername=Ordnername (OHNE "") (Hier den Hauptordner angeben)
for /f "delims=|" %%f in ('forfiles /p %ordnername% /s /m *.txt /c "cmd /c echo @path"') do ren %%f "%%~nf.t"
Ordnernamen angeben
*.txt anpassen
"%%~nf.t" -> .t ist die gewünschte Dateiendung -> auch anpassen
Geht sicher auch eleganter
Grüße
Dank erst mal für die schnelle Hilfe, aber ich bin kein Programmierer und verstehe nur Bahnhof.
Dann fahr halt weiter Bus, die Bahn fährt sowieso nur noch jedes Schaltjahr Wie soll das zusammen mit meiner Batchdatei funktionieren
Google ist dein Freund ....powershell -ExecutionPolicy ByPass -File "C:\powershellcode.ps1"
Um deine Frage zu beantworten die du mir per PN gestellt hast:
Einfach das Set Ordnername weg lassen und das "/p %ordnername%"
Dann sollte es auch von dem Ordner aus gehen in dem du dich gerade befindest. Oder du übergibst den Ordnernamen an die Batch.
Einfach nur:
meinebatch.bat "ordnername"
In der Batch dann selbst mit %~1 ansprechen statt %ordnername%
Grüße
Einfach das Set Ordnername weg lassen und das "/p %ordnername%"
Dann sollte es auch von dem Ordner aus gehen in dem du dich gerade befindest. Oder du übergibst den Ordnernamen an die Batch.
Einfach nur:
meinebatch.bat "ordnername"
In der Batch dann selbst mit %~1 ansprechen statt %ordnername%
Grüße
Was meinst du eigentlich mit neue?
Verstecken bzw. nicht verstecken sollte so gehenungetestet)
Verstecken:
Nicht verstecken
Musst du dir dann zusammen basteln. Jetzt versteckt bzw. versteckt er nicht alle Dateien in dem Ordner und Unterordnern.
Wenn du es nur auf zuvor umbenannte anwenden willst musst du das *.* in *.x (x=mit passender Dateiendung ersetzen) ändern.
Grüße
Verstecken bzw. nicht verstecken sollte so gehenungetestet)
Verstecken:
for /f "delims=|" %%f in ('forfiles /s /m *.* /c "cmd /c echo @path"') do ATTRIB %%f +H
Nicht verstecken
for /f "delims=|" %%f in ('forfiles /s /m *.* /c "cmd /c echo @path"') do ATTRIB %%f -H
Musst du dir dann zusammen basteln. Jetzt versteckt bzw. versteckt er nicht alle Dateien in dem Ordner und Unterordnern.
Wenn du es nur auf zuvor umbenannte anwenden willst musst du das *.* in *.x (x=mit passender Dateiendung ersetzen) ändern.
Grüße