Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 3156 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?

mfg
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 ..
Ähnliche Inhalte
Batch & Shell
Dateien im Ordner auslesen und umbennen (10)

Frage von jocheng zum Thema Batch & Shell ...

Batch & Shell
Dateien umbennen und verschieben mit bash (3)

Frage von sbsnewbie zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch : alle Dateien eines Ordners bearbeiten (1)

Frage von deguonkel zum Thema Batch & Shell ...

Neue Wissensbeiträge
Humor (lol)

Wo ist der Fehler auf dem Bild?

(15)

Information von the-buccaneer zum Thema Humor (lol) ...

Windows Update

Offenbar erneutes MS-Update mit Fehlerschleife (2012 R2)

Information von VGem-e zum Thema Windows Update ...

Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Heiß diskutierte Inhalte
Lizenzierung
Programm soll in verschiedenen Versionen lizenziert sein (20)

Frage von Yanmai zum Thema Lizenzierung ...

Windows Installation
Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen (14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Microsoft Office
Access Hilfe benötigt (13)

Frage von DieAzubinne zum Thema Microsoft Office ...

Windows Userverwaltung
Ordner-Rechte für Dom.Admin einschränken? (13)

Frage von kilobyte zum Thema Windows Userverwaltung ...