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
Kommentar vom Moderator Biber am 24.05.2011 um 21:42:33 Uhr
Batch - Dateien umbennen
...In diesen Verzeichnissen befinden sich die Dateien, die ich per batch-Datei umbennen möchte.
Set /a rgc+=2
#759
Die Datei soll nach dem Umbennen wie folgt heissen
Set /a rgc+=3
#760
Falls noch jemand da draussen ein Forschungsthema für einen ehrlich erworbenen Doktortitel sucht...
...Das Phänomen mit den unschreibbaren Worten mit mehreren "e"s und "n" auf kleiner Fläche sollte mal wissenschaftlich eruiert werden.
Vielleicht hiess auch Konrad Duden eigentlich Konrad Dudenen.... war damit aber chancenlos...

Batch - Dateien umbennen

Frage Entwicklung Batch & Shell

Mitglied: docluma

docluma (Level 1) - Jetzt verbinden

24.05.2011, aktualisiert 21:45 Uhr, 3117 Aufrufe, 7 Kommentare

Ich bin am verzweifeln, habe jetzt schon viel ausprobiert, bin aber noch nicht weit gekommen. Ich hoffe, es kann mir jemand helfen.

Besten Dank
docluma

Hallo,

ich habe folgende Verzeichnisstruktur

R:\_ToRename\
R:\_ToRename\20110522\1\
R:\_ToRename\20110523\1\
R:\_ToRename\20110524\1\
usw.
In diesen Verzeichnissen befinden sich die Dateien, die ich per batch-Datei umbennen möchte.

Die Dateien haben folgendes Format:
zB 00606E909A1D_m20110523232230.jpg

Nun möchte nun den Teil nach dem "m" behalten, da dieses das Datum mit Uhrzeit ist. Vor dem Zeitstring noch "cam1_" davor, den Teil mit der Zeit der Lesbarkeit wegen mit Unterstrichen unterteilen, und ans Ende (vorm Suffix) "_2" dranhängen.

Die Datei soll nach dem Umbennen wie folgt heissen:
cam1_20110523_232230_2.jpg

Die Batch-Datei befindet sich in R:\ToRename\

Folgendes habe ich erstes gemacht:

@echo off
set Quelle="R:\_ToRename"
Set DateiFilter="*.jpg"
for /r %Quelle% %%i in (%DateiFilter%) do rename %%i %%~ni_Test.jpg
end

Das funktioniert schon mal. Nun habe ich aber Probleme, den Dateinamen auseinander zu nehmen. Versucht habe ich verschiedenes mit Variablenzuweisung der Teile des Dateinames mit Part1=%%i:~15,8 und Part2=%%i:~23,6. Danach dann NewName=cam1_%Part1%_%Part2%_2.jpg
rename %%i=%NewName%.jpg

Versuche habe ich auch mit For /f "tokens= und delims probiert, aber da blicke ich garnicht durch.

Ich hoffe, ich habe mein Anliegen verständlich erklärt, und es kann mir jemand helfen.

Besten Dank schon mal
docluma
Mitglied: bastla
24.05.2011 um 21:30 Uhr
Hallo docluma und willkommen im Forum!

Der Ansatz ist ja schon nicht ganz übel - Du musst nur berücksichtigen, dass von Schleifenvariablen keine Teilstrings gebildet werden können (und dass die Zählung des Offsets bei 0 beginnt) - daher zB (ungetestet):
01.
@echo off & setlocal 
02.
set "Quelle=R:\_ToRename" 
03.
set "DateiFilter=*.jpg" 
04.
for /r "%Quelle%" %%i in (%DateiFilter%) do set "Name=%%~ni" & call :ProcessFile "%%i" 
05.
goto :eof 
06.
 
07.
:ProcessFile 
08.
set "Part1=%Name:~14,8%" 
09.
set "Part2=%Name:~22,6%" 
10.
echo ren %1 "cam1_%Part1%_%Part2%_2%~x1" 
11.
goto :eof
Das "echo" vor dem "ren" soll dem gefahrlosen Testen dienen - wenn's gut aussieht, einfach ersatzlos streichen ...
Versuche habe ich auch mit For /f "tokens= und delims probiert, aber da blicke ich garnicht durch.
Wenn Du nur den Teil nach dem "m" extrahieren müsstest und es kein weiteres "m" geben kann, einfach:
for /f "tokens=2 delims=m" %%a in ("%%~ni") do @echo %%a
- da Du aber dann trotzdem nochmals anhand der Zeichenzahl unterteilen willst, bietet es sich (wie oben) an, gleich alles per Stringzerlegung abzuhandeln ...

Grüße
bastla

[Edit] In Zeile 5 fehlendes "goto :eof" zum Beenden des Hauptprogrammes nachgetragen []/Edit]
Bitte warten ..
Mitglied: docluma
24.05.2011 um 22:37 Uhr
Hallo bastla

ja, genau das ist es!!! Funktioniert prima. Besten Dank. Nun habe ich aber noch ein Anliegen. Nach dem Umbennen will ich die Ordner dann noch verschieben. Wie ich das mache (xcopy) ist klar. Aber dein Script ended mit >goto :eof. Hm... Dieser Befehl bricht glaube ich die Batchverarbeitung ab. An welcher Stelle muss ich denn dann den xopy-Befehl einfügen?
Brauche ich da noch irgendwo ein zB goto :copy??

Besten Dank
docluma
Bitte warten ..
Mitglied: bastla
24.05.2011 um 22:43 Uhr
Hallo docluma!

Was meinst Du mit "Ordner verschieben" - bisher ging es doch um Dateien?

Grüße
bastla

P.S.: Gut, dass Du mich daran erinnert hast - oben fehlt(e - habe es jetzt ergänzt ) noch ein "goto :eof" - dessen Bedeutung ist übrigens immer "Beenden des Batches", wobei dies allerdings im Fall des in der letzten Zeile Stehenden eigentlich "Rücksprung in das Hauptprogramm" bedeutet ...
Bitte warten ..
Mitglied: docluma
24.05.2011 um 22:52 Uhr
Hallo bastla,

ja die Dateien stecken ja in Ordnern drin.
Alles, was im Ordner R:\ToRename steckt, will ich dann dahin verschieben, wo es zum Schluss hingehört. Die Dateien werden ja richtig umbenannt.
also nachdem alles, was im Ordner R:\ToRename ist umbenannt ist, werden alle Ordner verschoben nach R:\Alerts

OK, Zeile 5 habe ich nachgetragen. Aber wo platziere ich dann den copy-Befehl?

Mit freundlichen Grüßen
docluma
Bitte warten ..
Mitglied: bastla
24.05.2011 um 22:55 Uhr
Hallo docluma!
Aber wo platziere ich dann den copy-Befehl?
Da das, so interpretiere ich es mal, die letzte Aktion ist, die Dein Batch ausführen soll, genau vor die erwähnte Zeile 5 - diese beendet ja das Hauptprogramm (damit nicht nochmals das Unterprogramm ":ProcessFile" ausgeführt wird) ...

Grüße
bastla
Bitte warten ..
Mitglied: docluma
24.05.2011 um 23:12 Uhr
Hallo bastla!

genau, da muss es hin. Super.
Besten Dank & schönen Abend noch

docluma
Bitte warten ..
Mitglied: TsukiSan
25.05.2011 um 01:37 Uhr
- da Du aber dann trotzdem nochmals anhand der Zeichenzahl unterteilen willst, bietet es sich (wie oben) an, gleich alles per Stringzerlegung abzuhandeln ...
und wir hoffen, dass einstellige Zahlen/Ziffern immer eine Null vorangehangen bekommen

Gruss
Tsuki
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Batch & Shell
gelöst Per Batch Dateien in einen Ordner - ext. Festplatte übertragen (2)

Frage von tocksick zum Thema Batch & Shell ...

Windows Server
Zuordnung von Netzlaufwerken mit Hilfe von Batch-Dateien (4)

Frage von doc-jochim zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...