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, 13934 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
Batch & Shell
gelöst Batch Datei: PDF Dateien verschieben, umbenennen und löschen (4)

Frage von F0rcehunter zum Thema Batch & Shell ...

Batch & Shell
gelöst Verzeichniss überwachen Datei kopieren und umbenennen (6)

Frage von fischle63 zum Thema Batch & Shell ...

Batch & Shell
Umbenennen entpackter Dateien nach Dateinamen der rar- zip-Datei

Frage von windows-nutzer zum Thema Batch & Shell ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Batch & Shell
Skripterstellung Lehrling (22)

Frage von 133119 zum Thema Batch & Shell ...

Windows Userverwaltung
gelöst Wie verfahrt Ihr mit den Windows-Benutzerkonten und -dateien von ausgeschiedenen Mitarbeitern? (14)

Frage von Bl0ckS1z3 zum Thema Windows Userverwaltung ...

Exchange Server
Microsoft Exchange Weiterleitung mit anderer primären E-Mail Adresse (14)

Frage von Rene12345 zum Thema Exchange Server ...

LAN, WAN, Wireless
Devolo DLAN 500 pro Wireless+ (13)

Frage von IceAge zum Thema LAN, WAN, Wireless ...