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, 13672 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 ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Webentwicklung
gelöst HTML Output in eine txt Datei mit VisualBasicScript (2)

Frage von coca22COCA zum Thema Webentwicklung ...

Informationsdienste
gelöst Aktuelle Firefox MSI Datei!? (8)

Frage von Hendrik2586 zum Thema Informationsdienste ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (11)

Frage von clragon zum Thema Batch & Shell ...

Virtualisierung
gelöst VMDK Datei vergrößern auf der Console welche Datei ist die richtige? (3)

Frage von fireskyer zum Thema Virtualisierung ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...