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

Textdatei editieren

Frage Entwicklung Batch & Shell

Mitglied: sabinchen

sabinchen (Level 1) - Jetzt verbinden

23.05.2007, aktualisiert 25.05.2007, 3405 Aufrufe, 6 Kommentare

Hallo.
Ich hoffe, mir kann jemand bei der Lösung eines kleinen Problems helfen.
Ich habe eine Textdatei (Name ist immer unterschiedlich).
Nun sollen in dieser Textdatei die ersten 12 Zeilen gelöscht werden.
Anschließend sollen von allen anderen Zeilen die jeweils ersten 16 Zeichen gelöscht werden.
Danach soll die editierte Textdatei wieder unter dem gleichen Namen gespeichert werden.
Ist das per Batchdatei möglich und wie erhält die Batchdatei den Namen der zu editierenden Textdatei?
Kann man evtl. die Batchdatei aus einer anderen Batchdatei aufrufen?

Danke für eure Hilfe.

Liebe Grüße von
Sabine
Mitglied: miniversum
23.05.2007 um 19:34 Uhr
Ist das die einzigste Datei in diesem Verzeichnis? Wenn ja dann gehts so (ungetestet):
01.
@echo off & setlocal enabledelayedexpansion 
02.
for /F "delims=" %%n in ('dir /b /a-D C:\verzeichnis\*.*') do set filename=%%n 
03.
if exist %filename%_temp del %filename%_temp 
04.
for /F "skip=12 delims=" %%t in ('type "%filename%"') do ( 
05.
set text=%%t 
06.
echo !text:~16!>>"%filename%_temp" 
07.
08.
del "%filename%" 
09.
ren "%filename%_temp" "%filename%"
miniversum
Bitte warten ..
Mitglied: sabinchen
23.05.2007 um 20:07 Uhr
Hallo miniversum.
Danke für die schnelle Antwort.
Die Batchdatei funktioniert tadellos.
Leider ist die zu editierende Datei aber nicht die einzigste im Verzeichnis.
Auch ist das Verzeichnis nicht immer das gleiche.
Gibt es eine Möglichkeit, trotzdem das Problem zu lösen?

Vielen Dank und liebe Grüße von
Sabine
Bitte warten ..
Mitglied: miniversum
23.05.2007 um 20:13 Uhr
Es gibt noch die möglichkeit das du die dateiimmer auf die Batch datei ziehst per drag & drop oder als parameter mitgibst.
Dann müstest du die Batch datei Folgendermasen abändern:
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "filename=%~1" 
03.
if exist %filename%_temp del %filename%_temp 
04.
for /F "skip=12 delims=" %%t in ('type "%filename%"') do ( 
05.
set text=%%t 
06.
echo !text:~16!>>"%filename%_temp" 
07.
08.
del "%filename%" 
09.
ren "%filename%_temp" "%filename%"
miniversum
Bitte warten ..
Mitglied: Biber
23.05.2007 um 22:18 Uhr
Moin sabinchen,

willkommen im Forum.
Leider ist die zu editierende Datei aber nicht die einzigste im Verzeichnis
Es hätte auch gereicht, wenn es die einzige gewesen wäre..

@miniversum
Kleiner Verbesserungsvorschlag:
Die "beliebige" Drag &Drop-Datei kann mit oder ohne Laufwerk/Pfad-Angabe kommen.
Spätestens beim Rename wird aber als zweiter Parameter etwas OHNE Lw/Pfad gebraucht.
Ich würde daher mit eher mit Copy als mit Rename arbeiten.
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "filename=%~1" 
03.
Set "tempfile=%temp%\$%~nx1%" 
04.
if exist "%tempfile%" del "%tempfile%" 
05.
for /F "skip=12 delims=" %%t in ('type "%filename%"') do ( 
06.
set text=%%t 
07.
echo !text:~16!>>"%tempfile%" 
08.
09.
copy /y "%tempfile%" "%filename%" >nul
Grüße
Biber
Bitte warten ..
Mitglied: Biber
25.05.2007 um 11:27 Uhr
Moin sabinchen,

magst Du auch noch mal eine Rückmeldung schreiben?

Grüße
Biber

[Edit] Danke, sabinchen, für die schnelle Rückmeldung & Vrohe Vinxten![/Edit]
Bitte warten ..
Mitglied: sabinchen
25.05.2007 um 11:33 Uhr
Hallo Biber.
Sry, ich konnte vorhin erst die Batchdatei mit Deinen Änderungen testen, da ich gestern nicht zu Hause war.
Vielen lieben Dank nochmal dafür. Es funktioniert super.

Liebe Grüße von
Sabine
Bitte warten ..
Neuester Wissensbeitrag
Exchange Server

WSUS bietet CU22 für Exchange 2007 SP3 nicht an. EOL Exchange 2007

Tipp von DerWoWusste zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Windows Server
SBS 2011 Standard virtualisieren (13)

Frage von HeinrichM zum Thema Windows Server ...

Backup
Datensicherung ARCHIV (12)

Frage von fautec56 zum Thema Backup ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...