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

Batchverarbeitung suchen und ersetzen ohne Zusatztools

Mitglied: cqash

cqash (Level 1) - Jetzt verbinden

22.04.2010, aktualisiert 18.10.2012, 3891 Aufrufe, 9 Kommentare

Hallo zusammen,

ich habe folgenden Problem: Ich verarbeite eine CSV-Datei und muss die letzte Zeile in der Datei um einen String erweitern, also quasi suchen und ersetzen. Das Batchskript fügt dann die Ausführungszeit an die Zeile an.

Beispiel:
Letze Zeile in der CSV-Datei (vorher): 2010-04-20;07:15:23;
Letze Zeile in der CSV-Datei (nachher): 2010-04-20;07:15:23;16:53:24;

Ich hoffe jemand kann mir bei dem Thema helfen, ich bin dankbar für jede Idee.

Gruß cqash
Mitglied: cqash
22.04.2010 um 20:28 Uhr
Ja, habe diverse Einträge von "bastla" durchgelesen und versucht das in meinem Skript umzusetzen, leider bisher ohne Erfolg.
Bitte warten ..
Mitglied: bastla
22.04.2010 um 20:42 Uhr
Hallo cqash!

Wäre natürlich ganz einfach, wenn die letzte Zeile nicht mit einer Zeiilenschaltung endet:
>>D:\Datei.csv 16:53:24;
Problem: Danach gibt's die Zeilenschaltung ...
Soferne VBScript nicht unter "nogo" fällt:
01.
@echo off & setlocal
02.
set "Datei=D:\Datei.csv"
03.
set "Zusatz=16:53:24;"
04.

05.
set A=%temp%\AppendIt.vbs
06.
>%A% echo Set fso=CreateObject("Scripting.FileSystemObject"):D=WScript.Arguments(0):T=fso.OpenTextFile(D).ReadAll:fso.CreateTextFile(D).Write T ^& WScript.Arguments(1)
07.

08.
cscript //nologo %A% "%Datei%" "%Zusatz%"
Grüße
bastla
Bitte warten ..
Mitglied: cqash
22.04.2010 um 20:54 Uhr
Hi bastla,

das ist leider auch eins der Probleme, VB, bzw VBS dürfen wir nicht auf dem Server verwenden (Unternehmensrichtlinien), nur BATCH oder perl, wobei ich perl eigentlich vermeiden will. Hast Du vielleicht noch eine weitere Idee. Dir scheint das ja alles so aus den Fingern zu fließen. Schon mal vielen Dank für weitere Ideen/Lösungen.

Gruß cqash
Bitte warten ..
Mitglied: bastla
22.04.2010 um 20:58 Uhr
Hallo cqash!

Na gut - dann vielleicht so:
01.
@echo off & setlocal
02.
set "Datei=D:\Datei.csv"
03.
set "Zusatz=16:53:24;"
04.

05.
for /f "usebackq delims=" %%i in ("%Datei%") do set "Letzte=%%i"
06.
move "%Datei%" "%temp%\Datei.txt"
07.
findstr /v /b "%Letzte%" "%temp%\Datei.txt">"%Datei%"
08.
<nul >>"%Datei%" set /p=%Letzte%%Zusatz%
09.
del "%temp%\Datei.txt"
Voraussetzung: Die letzte Zeile kommt mit dem selben Inhalt nicht nochmals in der Datei vor ...

[Edit] Zeile 9 zum Aufräumen hinzugefügt [/Edit]
[Edit2] Jetzt so, wie's vorher schon gemeint war ... [/Edit2]

Grüße
bastla
Bitte warten ..
Mitglied: LotPings
22.04.2010 um 21:08 Uhr
Zitat von bastla:
Wäre natürlich ganz einfach, wenn die letzte Zeile nicht mit einer Zeiilenschaltung endet:
>>D:\Datei.csv 16:53:24;
> 
Problem: Danach gibt's die Zeilenschaltung ...

Das ließe sich ja verhindern:
<NUL >>D:\Datei.csvt set /P Dummy=15:53:24;
Gruß
LotPings
Bitte warten ..
Mitglied: bastla
22.04.2010 um 21:16 Uhr
@LotPings
Bin ja inzwischen auch schon dort - und auch ohne die Voraussetzung, dass die letzte Zeile keine Zeilenschaltung beinhalten darf ...

Grüße
bastla
Bitte warten ..
Mitglied: cqash
23.04.2010 um 08:03 Uhr
Danke für die vielen Antworten, leider funktioniert es noch nicht ganz richtig. Vielleicht hilft es doch, wenn ich Euch mal den gesamten Code zur Verfügung stelle.

01.
@echo off
02.
SETLOCAL ENABLEEXTENSIONS
03.
SETLOCAL DISABLEDELAYEDEXPANSION
04.
Set log_folder=C:\
05.
Set log_file=test.csv
06.
Set mm=%DATE:~3,2%
07.
Set dd=%DATE:~0,2%
08.
Set yyyy=%DATE:~6,4%
09.
Set stunde=%time:~0,2%
10.
If "%stunde:~0,1%"==" " set stunde=0%stunde:~1,1%
11.
Set minute=%time:~3,2%
12.
Set sekunde=%time:~6,2%
13.

14.
if %stunde% LSS 12 (goto start) else (goto end)
15.

16.
:start
17.
ECHO %dd%.%mm%.%yyyy%;%stunde%:%minute%:%sekunde%;>> %log_folder%%log_file%
18.
goto finish
19.

20.
:end
21.
for /f "usebackq delims=" %%i in ("%log_folder%%log_file%") do set "Letzte=%%i" 
22.
move "%log_folder%%log_file%" "%temp%\Datei.csv" 
23.
findstr /v /b "%Letzte%" "%temp%\Datei.csv">"%Datei%" 
24.
<nul >>"%log_folder%%log_file%" set /p=%Letzte%%stunde%:%minute%:%sekunde%;
25.
del "%temp%\Datei.csv"
26.
goto finish
27.

28.
:finish
29.
exit
Bitte warten ..
Mitglied: bastla
23.04.2010 um 09:06 Uhr
Hallo cqash!
leider funktioniert es noch nicht ganz richtig
ist eine mäßig aussagekräftige Fehlerbeschreibung - da hilft der gepostete Code schon mehr ...

Ersetze die Zeilen 20 bis 26 durch:
01.
:end
02.
for /f "usebackq delims=" %%i in ("%log_folder%%log_file%") do set "Letzte=%%i" 
03.
move "%log_folder%%log_file%" "%temp%\Datei.csv"  >nul
04.
findstr /v /b "%Letzte%" "%temp%\Datei.csv">"%log_folder%%log_file%" 
05.
>>"%log_folder%%log_file%" echo %Letzte%%stunde%:%minute%:%sekunde%;
06.
del "%temp%\Datei.csv"
07.
goto finish
Grüße
bastla

P.S.: Vielleicht solltest Du überhaupt erst am Nachmittag testen ...
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Choice Zusatztool, ENTER und ESC? (Batch)

gelöst Frage von clragonBatch & Shell23 Kommentare

Hey Leute, heute wieder eine Frage der unmöglichen Art, bitte überzeugt mich von Gegenteil. Ich entwickle gerade schon wieder ...

Microsoft Office

Excel Such- und Vergleichsfunktion

gelöst Frage von oesi1989Microsoft Office15 Kommentare

Hallo zusammen, ich habe 2 Tabellen mit Name, Vorname und Arbeitgeber. 1. Tabelle Name Vorname Geb-Datum Arbeitgeber Straße Ort ...

Exchange Server

Such-Index nach Neuerstellung defekt

Frage von CoverianExchange Server

Guten Morgen zusammen, wir haben hier aktuell ein Problem das mir schlaflose Nächte bereitet. Es handelt sich um einen ...

Batch & Shell

Wlan-adapter such algorithmus in batch

gelöst Frage von TicoWriteBatch & Shell7 Kommentare

Hallo zusammen, Ich möchte einen Wlan-adpater such algorithmus in batch erstellen, dazu fehlt mir aber der befehl in Dos. ...

Neue Wissensbeiträge
Internet
EU-Urheberrechtsreform: Zusammenfassung
Information von Frank vor 2 TagenInternet1 Kommentar

Auf golem.de gibt es eine Analyse von Friedhelm Greis, der das Thema EU-Urheberrechtsreform gut und strukturiert zusammenfasst. Zwar haben ...

Microsoft Office

Office365 Schwachstellen bei Sicherheit und Datenschutz

Information von Penny.Cilin vor 3 TagenMicrosoft Office7 Kommentare

Auf Heise+ gibt es einen Artikel bzgl. Office365 Schwachstellen. Das ist noch ein Grund mehr seine Daten nicht in ...

Sicherheit
Schwachstellen in VPN Clients
Tipp von transocean vor 5 TagenSicherheit2 Kommentare

Moin, es gibt Sicherheitslücken bei VPN Clients namhafter Hersteller, wie man hier lesen kann. Gruß Uwe

Sicherheit

Wikileaks-Gründer Julian Assange wurde festgenommen

Information von Frank vor 7 TagenSicherheit3 Kommentare

Wikileaks-Gründer Julian Assange wurde heute in London festgenommen. Die Botschaft Ecuadors, in der er seit sieben Jahren lebte, hat ...

Heiß diskutierte Inhalte
Tipps & Tricks
Verdammt voll erwischt
Frage von AlchimedesTipps & Tricks23 Kommentare

Folgende Mail habe ich auf meinem Freenet Account erhalten: Nun folgendes Problem: 1) Ich besuche Porno Seiten yep hat ...

Drucker und Scanner
Xerox 7328 muss jeden Tag neu installert werden
Frage von PN-SchrauberDrucker und Scanner20 Kommentare

hallo, ich habe in Problem mit einem unserer Drucker. Vorweg, die meisten unserer Netzwerkdrucker laufen über einen Druckserver, dieser ...

Windows 10
Laufwerks-Mapping über Batch - Laufwerke werden zu spät im Explorer angezeigt
Frage von PhilzipWindows 1015 Kommentare

Hallo zusammen, ich habe beim Thema Laufwerksmapping via Batch ein Phänomen, welches ich so noch nicht kannte. Per Batch ...

Vmware
Richtige Einstellungen beim ESXI 6.5 in Sachen CPU Zuweisung bei einer VM
gelöst Frage von zeroblue2005Vmware13 Kommentare

Hallo Zusammen, heute wollte ich mal fragen, wie ich eine VM die richtige Anzahl der von CPUs zuweise. Bin ...