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, 2542 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
PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von 126594 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
Batch & Shell
gelöst ZIP-Archive nach Dateien durchsuchen und Pfade ausgeben (33)

Frage von evinben zum Thema Batch & Shell ...

Router & Routing
Routingproblem in Homerouter-Kaskade mit Raspi (19)

Frage von Oldschool zum Thema Router & Routing ...

Server
Freenas schlechte Schreib Performance bei NFS (16)

Frage von janosch12 zum Thema Server ...

Windows Server
Fehler Vertrauensstellung im AD (14)

Frage von thomas-99 zum Thema Windows Server ...