Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Datei per CMD umbenennen

Frage Entwicklung Batch & Shell

Mitglied: FRAD

FRAD (Level 1) - Jetzt verbinden

06.04.2010 um 10:06 Uhr, 14133 Aufrufe, 6 Kommentare

Datei per CMD umbenennen und Teil des Ordnernamens übernehmen

Hallo,

ich möchte gerne erreichen, dass alle Dateien eines Ordners inkl. Unterordner in ein Ordner verschoben werden.

Beispiel IST

Ordnerstruktur

Hauptordner
->100 (Unterordner)
->200 (Unterordner)
->300 (Unterordner)
.
.
.

Unter den Unterordnern befinden sich mehrere PDF Dateien. Beispiel: meine.pdf

Nun soll das Ziel sein, alle PDF Dateien im Ordner "100" umzubenennen nach 100_meine.pdf ("Ordnername"_"ursprünglicherDateiname".pdf). Für die PDF-Dateien im Ordner "200" müsste die Umbennennung so aussehen "200_meine.pdf".

Beispiel SOLL

Hauptordner
->Reports (unterordner)

In dem Unterordner sollen nun alle umbenannten PDF Dateien liegen.

Ist dies mittels CMD machbar?

Viele Grüße
Mitglied: breppe
06.04.2010 um 10:27 Uhr
Hallo,

das ist mittels CMD machbar.

Stichwort: Schleife und der Befehl MOVE.

Hier muss darauf geachtet werden, dass keine der Dateien in Benutzung ist.

Gruß
Bitte warten ..
Mitglied: FRAD
06.04.2010 um 10:36 Uhr
Hi,

hast du evtl. ein Beispiel, wie dies aussehen könnte -> Dateiumbenennung?

Grüße
Bitte warten ..
Mitglied: Biber
06.04.2010 um 10:43 Uhr
Moin FRAD,

ein Beispiel mit angezeigtem Ergebnis am CMD-Prompt wäre:
01.
>for /d %i in (F:\temp\?00) do @for %j in ("%i\*.*") do @echo Move "%j" "\temp\Reports\%~ni_%~nxj" 
02.
Move "F:\temp\100\beispiel eins.pdf" "\temp\Reports\100_beispiel eins.pdf" 
03.
Move "F:\temp\100\beispiel zwo.pdf" "\temp\Reports\100_beispiel zwo.pdf" 
04.
Move "F:\temp\200\anderesbeispiel.pdf" "\temp\Reports\200_anderesbeispiel.pdf"
Anmerkungen:
  • Mein Ordner "F:\temp" entspricht deinem "Hauptordner" und hat die Unterverzeichnisse "100" und "200"
  • Ich habe unterstellt, dass der neue Zielordner (bei mir "F:\temp\Reports") bereits angelegt wurde und habe ihn fest als Ziel angegeben.
  • Wenn das angezeigte Ergebnis bei dir auch sinnvoll aussieht, dann das "@echo" weglassen - dann wird tatsächlich verschoben.

Grüße
Biber
Bitte warten ..
Mitglied: FRAD
06.04.2010 um 10:54 Uhr
Hallo,

Danke! Habe mir eine Batchdatei gebastelt:

01.
  
02.
for /d %i in (D:\Batch\?00) do @for %j in ("%i\*.*") do Move "%j" "\Batch\Reports\%~ni_%~nxj"  
03.
pause
Leider schließt sich die Datei einfach obwohl ich ein Pause am Ende gesetzt habe...

Habe auf d: einen Ordner "Batch" erstellt, darunter sind die Ordner "100" und "200" - und natürlich den Ordner "Reports".

Was würde passieren, wenn die Ordner 100 oder 200 auf einmal mit 2000 oder 3000 beginnen? In deiner Zeile steht "?00" müsste ich da noch etwas berücksichtigen?

Wäre super, wenn du mir kurz helfen könntest. Bekomme das Skript so nicht zum laufen...


EDIT:

In einem anderen Beitrag habe ich dieses Skript gefunden:
01.
  
02.
@echo off 
03.
FOR /F "delims=" %%a in ('dir /B /AD') do
04.
pushd "%%i" 
05.
call:verarbeite 
06.
popd 
07.
08.
goto:eof 
09.
 
10.
:verarbeite 
11.
FOR /F "delims=" %%i in ('dir /B /AD') do
12.
  dir "%%i" /B /A-D >NUL 2>NUL && FOR /F "delims=" %%j in ('dir "%%i" /B /A-D') do move /-Y "%%i\%%j" "%%i%%~xj" 
13.
  FOR /F "delims=" %%j in ('dir "%%i" /B /AD') do
14.
    FOR /F "delims=" %%k in ('dir "%%i\%%j" /B /A-D') do move /-Y "%%i\%%j\%%k" "%%i.%%j%%~xk" 
15.
16.
  rd /s /q "%%i" 
17.
18.
goto:eof 
19.
 
Wie kann ich in dem Skript verhindern, dass der Datei überschrieben wird? Ich möchte ja nur, dass der Ordnername vor dem eigentlich Dateinamen angehängt wird.
Bitte warten ..
Mitglied: Biber
06.04.2010 um 11:09 Uhr
Moin FRAD,

ein "Batch-Skript" ist ein Hilfsmittel für wiederkehrende Aufgaben, beispielsweise für Kopier/Umbenams-Aktionen, die du 3x täglich oder jeden Donnerstag mittag machen musst.
Bei einer EINmaligen Aktion wie deiner "Ab heute will ich meine Ordnerstruktur übersichtlicher organisieren"-Klamotte - da brauchst du nur EINmal im Leben diese eine CMD-Zeile. Versuch diese lieber nachzuvollziehen (siehe Hilfe zu FOR /?) als sie unverstanden irgendwo auf dem Desktop doppelklickbar abzuspeichern.

Wenn und nachdem du diese CMD-Zeile verstanden hast kannst du sie gerne (inklusive des "@echo"s in eine Textdatei speichert und von dort aus (solltest du eine Variante davon jemals wieder brauchen) per Copy&Paste an den CMD-Prompt kopieren.

Zur Frage "Ordner heißen 1000 und 2000 statt 100 und 200": Dann die Wildcard-Maske anpassen von "\Hauptordner\?00" auf "\Hauptordner\?000".

Grüße
Biber
Bitte warten ..
Mitglied: FRAD
06.04.2010 um 15:29 Uhr
Mit diesem Skript funktioniert es:

01.
 
02.
@echo off 
03.
FOR /F "delims=" %%i in ('dir /B /AD') do ( 
04.
FOR /F "delims=" %%j in ('dir "%%i" /B /A-D') do move /-Y "%%i\%%j" "%%i.%date%.%%j" 
05.
rd /s /q "%%i" 
06.
07.
pause 
08.
 
Bitte warten ..
Ähnliche Inhalte
Viren und Trojaner
WannaCry - wiederhergestellte Dateien umbenennen (7)

Frage von MasterPhil zum Thema Viren und Trojaner ...

Batch & Shell
gelöst Dateien nach Inhalt umbenennen (4)

Frage von Icemaniac zum Thema Batch & Shell ...

Batch & Shell
gelöst Alle Dateien in einem Ordner umbenennen (5)

Frage von l.scheper zum Thema Batch & Shell ...

Batch & Shell
Mit ISO Datei CMD Befehle ausführen (15)

Frage von Alexsus zum Thema Batch & Shell ...

Neue Wissensbeiträge
Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
SAN, NAS, DAS
MSA 2050 RAID Konfig (27)

Frage von Leo-le zum Thema SAN, NAS, DAS ...

Microsoft Office
Office Druck fehler (14)

Frage von DaistwasimBusch zum Thema Microsoft Office ...

Festplatten, SSD, Raid
Uninitialisierte Festplatte - Daten retten (11)

Frage von peterla zum Thema Festplatten, SSD, Raid ...

Netzwerkmanagement
Windows Server 2008 R2: "netsh reset" nicht verfügbar? (11)

Frage von RickTucker zum Thema Netzwerkmanagement ...