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

.txt datei mittels Batch auslesen und mit ausgelesenen Daten umbenennen

Frage Entwicklung Batch & Shell

Mitglied: noob-x

noob-x (Level 1) - Jetzt verbinden

08.08.2013 um 16:11 Uhr, 2522 Aufrufe, 8 Kommentare, 3 Danke

Hallo,

ich bekomme viele Textdateien die ich gern nach ihrem Inhalt umbenennen würde.

In der Datei steht immer an der selben Stelle ( Zeile 7, Stelle 63 bis 70 ) eine Zahl
diese Zahl sollte dann den Dateinamen ergeben = 12345678.txt

Bitte um Eure Hilfe


Danke

Andy

Mitglied: colinardo
08.08.2013, aktualisiert um 17:12 Uhr
Hallo Andy,
in Zeile 2 noch den Pfad zu den Textdateien angeben
01.
@echo off & setlocal ENABLEDELAYEDEXPANSION 
02.
set "pathTXTFiles=E:\Tempfolder\Scripte" 
03.
pushd "%pathTXTFiles%" 
04.
for /f "tokens=* delims=" %%a IN ('dir /b /a-d *.txt') DO @( 
05.
	call :setfilename "%%a" 
06.
07.
popd 
08.
goto end 
09.
 
10.
:setfilename 
11.
for /f "usebackq skip=6 tokens=* delims=" %%m IN (%*) DO @( 
12.
	set "filename=%%m" & set "filename=!filename:~62,8!" 
13.
   	move %* "!filename!.txt" 
14.
	goto :EOF 
15.
16.
:end
Grüße Uwe
Bitte warten ..
Mitglied: Endoro
08.08.2013, aktualisiert um 17:11 Uhr
My 2ct:
01.
@echo off &SETLOCAL 
02.
FOR /f "delims=" %%x IN ('dir /b /a-d *.txt') DO ( 
03.
	FOR /f "usebackqskip=6delims=" %%a IN ("%%~x") DO ( 
04.
		SET "nname=%%a" 
05.
		SETLOCAL ENABLEDELAYEDEXPANSION 
06.
		SET "nname=!nname:~62,8!" 
07.
		ECHO REN "%%~x" "!nname!%%~xx" 
08.
		endlocal 
09.
10.
)
lg.
Bitte warten ..
Mitglied: bastla
08.08.2013, aktualisiert um 19:08 Uhr
@ Endoro
Bei "delayedExpansion" ist immer zu berücksichtigen, ob in Dateinamen / Strings "!" vorkommen - die Sicherheitsvariante wäre, alle Variablen vor "SETLOCAL ENABLEDELAYEDEXPANSION" zu befüllen und dann nur noch lesend zu verwenden (ich unterstelle mal, dass in der Extension kein "!" enthalten ist, ansonsten auch diese einer Variablen zuweisen):
01.
@echo off &SETLOCAL 
02.
FOR /f "delims=" %%x IN ('dir /b /a-d *.txt') DO ( 
03.
    FOR /f "usebackqskip=6delims=" %%a IN ("%%~x") DO ( 
04.
        SET "nname=%%a" & SET "datei=%%x" 
05.
        SETLOCAL ENABLEDELAYEDEXPANSION 
06.
        ECHO REN "!datei!" "!nname:~62,8!%%~xx" 
07.
        endlocal 
08.
09.
)
Bei Deinem Ansatz würde eine Datei namens "Ein!kann!vorkommen.txt" auf "Einvorkommen.txt" (wenn %kann% nicht existiert) reduziert, da sich "delayedExpansion" auch auf den Inhalt von Schleifenvariablen auswirkt.

@ colinardo
Da Du von Anfang an "delayedExpansion" verwendest, ergibt sich bei Deiner Version das gleiche Problem ...

Grüße
bastla
Bitte warten ..
Mitglied: Endoro
08.08.2013 um 21:31 Uhr
@bastla ich weiss, danke nochmal.
Man darf auch nicht callen mit einem Dateinamen huckepack wie colinardo das macht ...
lg.
Bitte warten ..
Mitglied: bastla
08.08.2013 um 21:35 Uhr
@ Endoro
Was meinst Du mit
Man darf auch nicht callen mit einem Dateinamen huckepack
?

Grüße
bastla
Bitte warten ..
Mitglied: Endoro
08.08.2013 um 21:42 Uhr
@bastla
Ein Beispiel:
01.
@echo off &SETLOCAL 
02.
SET "filename=120%%" 
03.
ECHO %filename% vor dem CALL 
04.
CALL:sub "%filename%" 
05.
EXIT /b 
06.
 
07.
:sub 
08.
ECHO %~1 nach dem CALL 
09.
EXIT /b
120% vor dem CALL 
120 nach dem CALL
lg.
Bitte warten ..
Mitglied: bastla
08.08.2013 um 21:49 Uhr
@ Endoro
Andere Baustelle, aber klar - das macht man/frau sich ja zB auch mit einem direkten "call" der Art
call set "Var=%%Var:%Suchen%=%Ersetzen%%%"
zunutze ...

Grüße
bastla
Bitte warten ..
Mitglied: noob-x
09.08.2013 um 10:44 Uhr
Hallo,


funktioniert genau so wie ich es brauche.

vielen vielen Dank an Alle.

Grüße

Andy
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst Einzelne Zeilen in txt Datei speichern und auslesen (7)

Frage von noah1400 zum Thema Batch & Shell ...

Batch & Shell
Ungewöhnliche Txt.Datei-Abfrage mit Batch (3)

Frage von DaTobsn zum Thema Batch & Shell ...

Windows Systemdateien
gelöst Registry-Schlüssel per Batch auslesen und in Datei schreiben (9)

Frage von Philzip zum Thema Windows Systemdateien ...

Batch & Shell
gelöst Falsche Umlaute beim auslesen einer .txt mit batch (2)

Frage von pdiddo zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

Exchange Server
DNS Einstellung - zwei feste IPs für Mailserver (15)

Frage von ivan0s zum Thema Exchange Server ...