Top-Themen

Aktuelle Themen (A bis Z)

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, 4048 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
Dateien nach Inhalt umbenennen
gelöst Frage von IcemaniacBatch & Shell4 Kommentare

Hallo Community, ich hoffe Ihr könnt mir weiter helfen. Ich habe in einem Ordner hunderte txt-Dateien auf einem Windows-PC, ...

Batch & Shell
In txt file an bestimmter Position zeichen ersetzen, Ideen ?
gelöst Frage von buliwyfBatch & Shell7 Kommentare

EIn freundl. Hallo all ;-) mein Anliegen was mich jetzt 2 Tage beschaeftigt ist : wie kann ich in ...

Batch & Shell
Dateien umbenennen - ersten Zeichen entfernen
Frage von jan999Batch & Shell4 Kommentare

Moin! meine bessere Hälfte hat mich nach der Lösung folgender Aufgabe gefragt - eine Idee habe ich. Nur weiß ...

Batch & Shell
Bestimmte Ordner per Batch umbenennen
gelöst Frage von 122763Batch & Shell3 Kommentare

Liebe Forenmitglieder, soviel vorweg gesagt - mir ist durchaus bewusst, dass es viele ähnliche Beiträge gibt, die mir leider ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Necur-Botnet soll Erpressungstrojaner Scarab massenhaft verbreiten

Information von BassFishFox vor 10 StundenErkennung und -Abwehr

12,5 Millionen Spam-Mails aus einem Bot-Netz mit 6 Millionen Computern? Eigentlich eine schwache Leistung. Die Erpresser setzen dabei auf ...

Microsoft

Nadeldrucker-Problem unter Windows - Microsoft liefert Updates

Information von BassFishFox vor 10 StundenMicrosoft

Hat ja nicht lange gedauert. Nachdem die November-Updates für Windows 7, 8.1 und 10 zahlreiche Nadeldrucker lahmgelegt hatten, stellt ...

Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 18 StundenLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Heiß diskutierte Inhalte
Windows Server
Kann man im KMS nachschauen , wieviele Clients den Key in Anspruch genommen haben
gelöst Frage von rainergugusWindows Server15 Kommentare

Hallo, wir haben einen KMS Windows 10 Key. Dieser ist ja W7 kompatibel. Aber unser Windows 7 Pool registriert ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...