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

Directory und Dateinamen aus Datei auslesen, in Directory wechseln und Dateiennamen umbenennen

Frage Entwicklung Batch & Shell

Mitglied: readonly

readonly (Level 1) - Jetzt verbinden

13.12.2007, aktualisiert 14.12.2007, 4200 Aufrufe, 5 Kommentare

So, jetzt wird es kompliziert

Ich habe ein Datei, die ausgelesen werden soll. Im gleichen Verzeichnis gibt es n Ordner mit n Dateien.

Die Datei, die ausgelesen werden soll, hat folgendes Format:

SF001
01 aaaaaaaaa
02 bbbbbbbbbbb
03 ccccccccc
.
.

SF002
01 ddddddddddd
02 eeeeeeeeee
03 fffffffffffffff
04 ggggggggggg
.
.
.
.

SF003
01 hhhhhhhhhh
02 iiiiiiiiiiiiiiiiii
.
.
.

Es soll jetzt im Verzeichnis SF001 die Datei, die mit 01 anfängt, also z.B. 01.txt in 01_aaaaaaaaa.txt umbenannt werden.
Dann die Datei 02.txt in 02_bbbbbbbbb.txt. usw. usw

Wenn Verzeichnis SF001 agearbeitet ist, dann ins Verzeichnis SF002 wechseln und die ganze Prozedur mit 01.txt nach 01_ddddddddddd.txt umbenennen.....

Vielleicht kann man die Verzeichnisse daran erkennen, dass sie alphanumerisch sind und daher Verzeichnisse sein müssen? Oder mit SF beginnen, denn das werden immer Verzeichnisse sein.

Vielen Dank im voraus!
Mitglied: bastla
13.12.2007 um 22:37 Uhr
Hallo readonly und willkommen im Forum!

Das könnte so gehen:
01.
@echo off & setlocal 
02.
set "Basis=D:\Temp" 
03.
set "Liste=DateiListe.txt" 
04.
 
05.
for /f "usebackq tokens=1*" %%i in ("%Basis%\%Liste%") do call :ProcessLine "%%i" "%%j" 
06.
goto :eof 
07.
 
08.
:ProcessLine 
09.
set "P=%~1" 
10.
if /i "%P:~0,2%"=="SF" set "Verz=%Basis%\%P%" & goto :eof 
11.
if exist "%Verz%\%P%.txt" ren "%Verz%\%P%.txt" %2.txt 2>nul
Bitte bei der Angabe des Basisordners keinen abschließenden "\" (daher zB auch für "D:\" nur "D:" schreiben) und für die Dateiliste nur den Namen (ohne Pfadangabe) verwenden.

Bei Umbenennungsaktionen immer zu berücksichtigen: Falls im Zielordner bereits eine Datei mit dem neuen Namen existiert, wird (in der aktuellen Fassung) die zu bearbeitende Datei (0x.txt) nicht umbenannt.

Grüße
bastla
Bitte warten ..
Mitglied: readonly
14.12.2007 um 10:07 Uhr
Klasse, vielen Dank. Nach ein paar Modifikationen für mein Umfeld hat es einwandfrei geklappt.
Nur beim renamen macht er aus ’ (Hochkomma) ein Æ. Aber das krieg ich noch hin Zur Not mit einem rename programm, denn es werden schon so um die 7000 Dateien......

Nochmals vielen Dank!
Bitte warten ..
Mitglied: bastla
14.12.2007 um 10:30 Uhr
Hallo readonly!

Du kannst es mit dem Umschalten der verwendeten Codepage versuchen - dazu vor der "for"-Schleife ein "chcp 1252" einfügen.

Grüße
bastla
Bitte warten ..
Mitglied: readonly
14.12.2007 um 11:38 Uhr
hat auch geklappt!

Nochmals vielen Dank!
Bitte warten ..
Mitglied: Biber
14.12.2007 um 12:50 Uhr
Moin readonly,

Willkommen auch von mir.
Nachdem ich in den letzten Tagen so oft genervt auf Beiträge im Frittenbudendeutsch reagiert habe, möchte ich auch positives Feedback nicht zurückhalten.

Du hast eine klare und vollständige Aufgabenstellung formuliert, immer prompt rückgemeldet und einen absolut sauberen Erst-Beitrag hinterlassen.

Wenn Du dieses lobenswerte Verhalten weiter beibehältst, dann kannst Du auch diese nicht-so-gern-gelesene Phrase "Vielen Dank im voraus" beim nächsten Mal einsparen, und selbst ich habe nichts mehr zu meckern.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Batch & Shell
gelöst PowerShell, Log Datei auslesen, bei Änderungen E-Mail senden (12)

Frage von swissbull zum Thema Batch & Shell ...

Batch & Shell
Umbenennen entpackter Dateien nach Dateinamen der rar- zip-Datei

Frage von windows-nutzer zum Thema Batch & Shell ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (36)

Frage von Datsspeed zum Thema Exchange Server ...

Verschlüsselung & Zertifikate
Mit Veracrypt eine zweite interne (non-system) Festplatte verschlüsseln (10)

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

C und C++
Methode multiple return values (8)

Frage von mayho33 zum Thema C und C ...

Microsoft Office
Übertrag in eine andere Tabelle (6)

Frage von charmeur zum Thema Microsoft Office ...