kenny000

Mittels Batch Datei Zeilen in CSV-Dateien löschen und anschliessen auf ftp-server uploaden

Ich hab schon einiges im forum herumgestöbert und auch einiges ausprobiert, jedoch funktionieren diese nicht :/

Ich benötige ein Batch File die folgendes macht:
Dies sind exportierte Trennzeichen von Excel. Jede Datei besitzt so ca. 10000 zeilen wobei es vorkommt das zwischendurch einige Zeilen, so wie oben gezeigt, so ausgegeben werden.

Anschliessend sollen diese 6 bzw. 7 bearbeiteten csv.files auf den ftp-server geladen werden.

Wenn alles erfolgreich abgeschlossen ist sollte eine Meldung ausgegeben werden.

Für das bearbeiten der csv Dateien hab ich folgenden code probiert:
@ECHO off
SETLOCAL enabledelayedexpansion

REM Suchen und Ersetzen in einer Textdatei

SET "quell_datei=c:\temp\test\juhu.csv"  
SET "ziel_datei=c:\temp\juhu.csv"  
SET "suchen_nach=^|||"  
SET "ersetzen_durch="  

REM Ausgabe einer Fehlermeldung und Programmabbruch
REM falls die Variable "suchen_nach" nicht definiert ist  
IF NOT DEFINED suchen_nach (ECHO Fehler: Die Variable suchen_nach nicht definiert^^!&GOTO :eof)

REM Loeschen der Ausgabedatei, falls sie (noch) existiert
IF EXIST %ziel_datei% (DEL /f %ziel_datei% 1>NUL 2>NUL)

REM Quell-Datei zeilenweise auslesen 
REM und in Variable "zeile" schreiben  
FOR /f "delims=" %%i IN ('FINDSTR . "%quell_datei%"') DO (  
SET zeile=%%i& CALL :ersetzen !zeile!
)
GOTO :weiter
:ersetzen
REM innerhalb der Variable "zeile"  
REM den Inhalt der Variable "suchen_nach" suchen  
REM und diese durch den Inhalt der Variable "ersetzen_durch" ersetzen  
SET zeile=!zeile:%suchen_nach%=%ersetzen_durch%!

REM Inhalt der Variable "zeile" in die Ausgabedatei schreiben  
IF [!zeile!] EQU  (ECHO.>>%ziel_datei%) ELSE (ECHO !zeile!>>%ziel_datei%)
GOTO :eof

ECHO Fertig^^!
wobei dieser code nur für ein file gemacht wurde, ich habe aber einen ganzen ordner voll ;)

Also den upload habe ich hinbekommen face-smile

Danke und gruss Jürgen

PS: Ist eventuell auch möglich über dieser Batch Datei ein Makro in einem Excel auszuführen?

[Edit Biber] Codefragment durch Codeformatierung lesbar gemacht. [/Edit]
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen
Kommentar vom Moderator Biber am 27.07.2011 um 01:31:31 Uhr
Frage verschoben von "Windows?" nach "Batch & Shell"

Content-ID: 170458

Url: https://administrator.de/forum/mittels-batch-datei-zeilen-in-csv-dateien-loeschen-und-anschliessen-auf-ftp-server-uploaden-170458.html

Ausgedruckt am: 24.04.2025 um 07:04 Uhr

bastla
bastla 26.07.2011 um 21:28:35 Uhr
Goto Top
Hallo kenny000 und willkommen im Forum!

findstr /v "|||" "%quelldatei%">"%zieldatei%"
verwenden - analog für alle csv-Dateien des Quellordners:
@echo off & setlocal
set "quellordner=c:\temp\test"  
set "zielordner=c:\temp\"  

pushd "%quellordner%"  
for /f "delims=" %%i in ('dir /b /a-d *.csv') do findstr /v "|||" "%%i">"%zielordner%\%%i"  
popd
Hinsichtlich des Excel-Makros: Vermutlich lässt sich das auch als VBScript erledigen - per Batch könnte ich mir nur vorstellen, ev eine Excelmappe mit enthaltenem Autostart-Makro zu öffnen ...

Grüße
bastla
kenny000
kenny000 27.07.2011 um 17:20:14 Uhr
Goto Top
Hi,

supi funktioniert einwandfrei, danke für deine rasche antwort face-smile

gruss kenny