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:
wobei dieser code nur für ein file gemacht wurde, ich habe aber einen ganzen ordner voll ;)
Also den upload habe ich hinbekommen
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]
Ich benötige ein Batch File die folgendes macht:
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^^!
Also den upload habe ich hinbekommen
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]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
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
2 Kommentare
Neuester Kommentar
Hallo kenny000 und willkommen im Forum!
verwenden - analog für alle csv-Dateien des Quellordners:
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
findstr /v "|||" "%quelldatei%">"%zieldatei%"
@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
Grüße
bastla