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, 2545 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 ..
Ähnliche Inhalte
Batch & Shell
Per Batch eine XLS-Datei in eine TXT-Datei umwandeln (5)

Frage von skiing69 zum Thema Batch & Shell ...

Batch & Shell
gelöst Zeiten in .txt datei auslesen und Differenz berechnen (14)

Frage von meex87 zum Thema Batch & Shell ...

PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Komplett neues Netzwerk, Ubiquiti WLAN, Router, Switch (16)

Frage von Freak-On-Silicon zum Thema LAN, WAN, Wireless ...

CMS
Lokales Wordpress im LAN - wie aufsetzen? (15)

Frage von Static zum Thema CMS ...

Backup
Backup Wochen- Monats- Jahressicherung (13)

Frage von Meterpeter zum Thema Backup ...

RedHat, CentOS, Fedora
Fedora, RedHat, Centos: DNS-Search Domain setzen (13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...