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, 1632 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 ..
Neuester Wissensbeitrag
Windows Update

Windows Update-Suche nach Win7 Neuinstallation wieder schneller

(1)

Erfahrungsbericht von the-buccaneer zum Thema Windows Update ...

Ähnliche Inhalte
Batch & Shell
gelöst Teilstring nach Splitten in Variablen schreiben vbs (2)

Frage von goodbytes zum Thema Batch & Shell ...

Sonstige Systeme
Batch Dateinamen zerlegen (5)

Frage von Mummel zum Thema Sonstige Systeme ...

Batch & Shell
gelöst Batch Eingabe in Datei schreiben (2)

Frage von MedicalAd 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 ...

Heiß diskutierte Inhalte
Exchange Server
Bestehende eMails autoamatisch weiterleiten (21)

Frage von metal-shot zum Thema Exchange Server ...

Hyper-V
gelöst Reiner Hyper- V Server oder lieber Rolle (21)

Frage von Winuser zum Thema Hyper-V ...

SAN, NAS, DAS
gelöst Synology Version 6.1 Probleme (18)

Frage von Hendrik2586 zum Thema SAN, NAS, DAS ...

Router & Routing
gelöst IP Kamera für drei unabhängige Netzwerke (16)

Frage von ProfessorZ zum Thema Router & Routing ...