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

Dateinamen per Batch auseinandernehmen und in Variablen schreiben

Frage Entwicklung Batch & Shell

Mitglied: BWeber1988

BWeber1988 (Level 1) - Jetzt verbinden

11.02.2013, aktualisiert 15:19 Uhr, 1631 Aufrufe, 2 Kommentare

Moin moin,

ich habe folgendes Problem:
In einem Ordner habe ich mehrere hundert .tif-Dateien mit folgendem Bezeichnungssystem:

abcdef_ghi_1234567890.tif
(also varchar(6)_varchar(3)_varchar(8-24).tif

Die Zahl am Ende entsteht aus einem Barcode. Dieser sollte eigentlich unique sein, ist es aber nicht. Daher möchte ich in dem Verzeichnis Unterverzeichnisse in folgendem Stil erstellen:
C:\..\abcdef\ghi\1234567890.tif

Ich hab mir das (pseudocodisiert) folgendermaßen vorgestellt:
- schreibe Dateinamen in Variable %Var0%
- nimm Zeichen 1-6 und schreibe sie in %Var1%
- nimm Zeichen 7-9 und schreibe sie in %Var2%
- nimm Zeichen 11-Ende und schreibe sie in %Var3%
- Erstelle Variable %Directory% mit Zielpfad (C:\..\%Var1%\%Var2%\)
- Erstelle Verzeichnis %Directory%
- Kopiere C:\..\%Var0%.tif nach %Directory%
- Benenne Datei %Var0%.tif um in %Var3%.tif
- Lösche Datei mit Namen %Var0%.tif

Kann man insbesondere die ersten vier Schritte per Batch umsetzen?

VG,

BWeber
Mitglied: bastla
11.02.2013, aktualisiert um 16:01 Uhr
Hallo BWeber1988 und willkommen im Forum!

Das ginge (ungetestet) etwa so:
01.
@echo off & setlocal 
02.
set "Quelle=C:\theTIFs\*_*_*.tif" 
03.
set "Ziel=C:\" 
04.
 
05.
for %%i in ("%Quelle%") do ( 
06.
    for /f "tokens=1-3 delims=_" %%a in ("%%~ni") do ( 
07.
        md "%Ziel%\%%a\%%b" 2>nul 
08.
        echo move "%%i" "%Ziel%%%a\%%b\%%c%%~xi" 
09.
10.
11.
pause
Das Erstellen der Ordner erfolgt in dieser Fassung bereits, das Verschieben der Dateien wird (wegen des "echo" vor dem "ren") zunächst nur simuliert - wenn das "echo" entfernt wird, wird auch verschoben (und eine ev bereits existierende gleichnamige Datei im Zielordner kommentarlos überschrieben).

Falls die Zielordner nicht unmittelbar in "C:\" erstellt werden sollen, den Pfad in Zeile 3 ändern, aber jedenfalls mit einem "\" abschließen!

Grüße
bastla
Bitte warten ..
Mitglied: BWeber1988
11.02.2013 um 16:11 Uhr
Moin,

ich hab's ausprobiert und es geht wunderbar!
Vielen Dank!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Teilstring nach Splitten in Variablen schreiben vbs (2)

Frage von goodbytes zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateien (PDF) umbenennen via batch, teilw. Dateinamen übernehmen, neues Präfix (6)

Frage von brause1701 zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Installation
Eine etwas (wirklich) speziellere Frage: Windows 10-Installation über (16)

Frage von DerFurrer zum Thema Windows Installation ...

Multimedia & Zubehör
gelöst Iphone 6 prob (12)

Frage von jensgebken zum Thema Multimedia & Zubehör ...

Verschlüsselung & Zertifikate
gelöst Festplattenverschlüsselung im Ausland (12)

Frage von Nicolaas zum Thema Verschlüsselung & Zertifikate ...

Netzwerkgrundlagen
gelöst Cisco SG500 Series LAG hat sich von selbst umgestellt (11)

Frage von Ex0r2k16 zum Thema Netzwerkgrundlagen ...