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, 1635 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 Variable per Batch auslesen und in Registry schreiben (1)

Frage von Zendara zum Thema Batch & Shell ...

Batch & Shell
gelöst Größe einer Datei per BATCH in eine TXT schreiben (5)

Frage von marvinpl zum Thema Batch & Shell ...

Batch & Shell
gelöst Per Batch in ausgewählte oder vorgeschriebene Zeile einer .txt schreiben (6)

Frage von pdiddo zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateinamen mit Batch-Datei ändern - Problem (9)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Windows Server

Exchange 2010 Active Directory und Windows Server 2016

(4)

Erfahrungsbericht von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (52)

Frage von sabines zum Thema Internet ...

Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

Router & Routing
PFsense - Netzverbindung steht, aber kein Internet vorhanden (24)

Frage von aschmid zum Thema Router & Routing ...

Windows Server
gelöst Windows 2016 Hyper-V und VHDS (19)

Frage von emeriks zum Thema Windows Server ...