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

Mit Batch Datei nach bestimmten Zeichen im Inhalt mit fixer Position umbenennen

Frage Entwicklung Batch & Shell

Mitglied: alexx65

alexx65 (Level 1) - Jetzt verbinden

15.06.2010 um 10:53 Uhr, 4041 Aufrufe, 8 Kommentare

Für folgendes Problem suche ich eine Lösung:
Unter Windows möchte ich mit einer Batch Datei eine Datei text.txt umbenennen.
Der neue Dateiname sollen exakt die Zeichen 15 bis 24 des Dateinhalts in der 2. Zeile sein, Endung wie gehabt .txt
Mitglied: Snowman25
15.06.2010 um 11:08 Uhr
01.
@Echo off && setlocal enabledelayedexpansion 
02.
set a=0 
03.
for /F "delims=" %%I in (test.txt) do ( 
04.
	if !a!==1 ( 
05.
		set b==%%I 
06.
		ren text.txt !b:~15,24!.txt 
07.
	)  
08.
	set /a a=!a!+1 
09.
)
Bitte warten ..
Mitglied: bastla
15.06.2010 um 11:14 Uhr
@Snowman25
Abgesehen davon, dass der Teilstring eher mit
!b:~14,10!
gebildet werden sollte, wäre auch zu berücksichtigen, ob die Dateinamen Rufzeichen enthalten (könnten) - in diesem Fall wäre "delayedExpansion" keine so gute Idee ...

Grüße
bastla
Bitte warten ..
Mitglied: Snowman25
15.06.2010 um 11:22 Uhr
Zitat von bastla:
@Snowman25
Abgesehen davon, dass der Teilstring eher mit
!b:~14,10!
gebildet werden sollte, wäre auch zu berücksichtigen, ob die Dateinamen Rufzeichen enthalten (könnten) - in diesem
Fall wäre "delayedExpansion" keine so gute Idee ...
Huch stimmt

also nochmal:
01.
@Echo off && setlocal enabledelayedexpansion 
02.
set a=0 
03.
for /F "delims=" %%I in (test.txt) do ( 
04.
	if !a!==1 ( 
05.
		set b==%%I 
06.
		set b==!b:~^!=^^^!! 
07.
		ren text.txt !b:~14,10!.txt 
08.
	)  
09.
	set /a a=!a!+1 
10.
)
Grüße
bastla

Grüße
Snow

PS:
!b:~^!=^^^!! ist schon ein eigenartiges Konstrukt...
Bitte warten ..
Mitglied: bastla
15.06.2010 um 11:32 Uhr
Hallo alexx65 und willkommen im Forum!

Soll es eigentlich tatsächlich nur um eine einzelne Datei gehen und wenn ja, woran ist diese zu erkennen / wie wird sie ggf übergeben?
Jetzt habe ich's hoffentlich richtig gelesen - falls ja, dann etwa so:
01.
@echo off & setlocal 
02.
set "Datei=D:\Test.txt" 
03.
set "Zeile=" 
04.
for /f "usebackq skip=1 delims=" %%i in ("%Datei%") do if not defined Zeile set "Zeile=%%i" 
05.
if defined Zeile ren "%Datei%" "%Zeile:~14,10%.txt"
Grüße
bastla

[Edit] Um immer das Verzeichnis der Batchdatei zu verwenden, könnte die Zeile 2 auf
set "Datei=%~dp0Test.txt"
geändert werden.
[/Edit]
Bitte warten ..
Mitglied: bastla
15.06.2010 um 11:35 Uhr
@Snowman25
Wenn "delayedExpansion" verwendet wird, kannst Du "!" nicht maskieren - es wird in diesem Fall als Begrenzungszeichen der Variablen einfach verschwinden, bzw wenn es ein zweites "!" in Dateinamen gibt, ist auch der Teil dazwischen weg ...

Grüße
bastla
Bitte warten ..
Mitglied: Snowman25
15.06.2010 um 11:47 Uhr
Naja. 'nen Versuch wars wert. Ansonsten lässt sich ja auch alles maskieren (oft auch unerwünscht). nur da wo man's braucht gehts wieder net
Also muss man einfach davon ausgehen, dass kein Ausrufezeichen im Textabschnitt vorkommt. Ausserdem sollten Anführungszeichen um den dateinamen im REN-Befehl sein.

funktionierende Version:
@Echo off && setlocal enabledelayedexpansion 
set a=0 
for /F "delims=" %%I in (test.txt) do ( 
	if !a!==1 ( 
		set b==%%I 
		ren test.txt "!b:~14,10!.txt" 
	)  
	set /a a=!a!+1 
)
Bitte warten ..
Mitglied: alexx65
15.06.2010 um 11:54 Uhr
Hallo bastla, ja es soll jeweils nur eine einzelne Datei umbenant werden. Sie liegt in dem Verzeichnis, in dem auch die Batch Datei liegen wird, und hat (vor Umbenennung) immer einen identischen Namen, also zB text.txt.
Es geht dabei übrigens um täglich exportierte Kontoauszüge, die das Buchungsdatum als Dateinamen bekommen sollen, und der befindet sich wie geschrieben an einer fixen Position in der 2. Zeile.
Thx für die schnellen Antworten, werde es gleich mal testen!
Bitte warten ..
Mitglied: alexx65
15.06.2010 um 12:04 Uhr
Jetzt klappt's! Dein letzter Ansatz macht's genau wie gewünscht
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst In txt file an bestimmter Position zeichen ersetzen, Ideen ? (7)

Frage von buliwyf zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Datei: PDF Dateien verschieben, umbenennen und löschen (4)

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

Viren und Trojaner
WannaCry - wiederhergestellte Dateien umbenennen (7)

Frage von MasterPhil zum Thema Viren und Trojaner ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Rechtliche Fragen
gelöst Geschäftsführer Email gefaked (18)

Frage von xbast1x zum Thema Rechtliche Fragen ...

Vmware
gelöst Update auf ESXI 6.5 Installieren (15)

Frage von zeroblue2005 zum Thema Vmware ...

Festplatten, SSD, Raid
gelöst Welche Software für Bandlaufwerk (14)

Frage von djonas zum Thema Festplatten, SSD, Raid ...

iOS
IPhone wird ferngesteuert Hacker? (14)

Frage von Akcent zum Thema iOS ...