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, 1626 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
Ähnliche Inhalte
Batch & Shell
gelöst Teilstring nach Splitten in Variablen schreiben vbs (2)

Frage von goodbytes zum Thema Batch & Shell ...

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

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
gelöst Variablen Zusammenbauen 2.0 ( Batch ) (6)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst FOR Loop Variablen ( Batch ) (2)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (32)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...