Supportnet Computer
Planet of Tech

Supportnet / Forum / WindowsXP

Anführungszeichen aus .txt Datei löschen





Frage

Hi, ich habe eine TXT Datei und in dieser sind leider vor und hinter manchen Zeilen Anführungszeichen. also ich könnte es auch von Hand machen, da ich nur den Editor öffnen muss und bei suchen " schreiben muss und bei ersetzen nichts und schon sind sie weg. auch wenn ich die Eingabeaufforderung starte und die txt datei im DOS Editor starte, kann ich die anführungszeichen so entfernen. Da muss es doch eine möglichkeit geben, dass ich das irgendwie gebacken bekomme, am besten wäre so ne batch datei ist das damit möglich?

Antwort 1 von batti-batch

Hallo Player1987,


Suchen und Ersetzen lassen sich mit einer Batch-Datei erledigen.
Um aber die Möglichkeiten von
Suchen und Ersetzen
zu demonstrieren, habe ich das Beispiel etwas ausgebaut: hier werden Anführungszeichen (") durch Sternchen (*) ersetzt.

Das Programm kannst Du im
SET-Block
ganz leicht Deinen Wünschen anpassen:

SET "datei=Laufwerk_und_Pfad_zu_Deiner_Textdatei"
SET "ausgabe=Laufwerk_und_Pfad_zu_Deiner_Ausgabedatei"
SET "suchzeichen=""
SET "ersetzungszeichen=*"


Wenn Du das Anführungszeichen (") nur entfernen möchtest, ändere die Zeile

SET "ersetzungszeichen=*"

in
SET "ersetzungszeichen="


Hier ist das Batchprogramm:

@ECHO off
SETLOCAL enabledelayedexpansion

REM
REM Testprogramm
REM Ersetzen von Zeichen und Schreiben in eine neue Datei
REM
REM lauffaehig ab Windows 2000
REM 


SET "datei=Laufwerk_und_Pfad_zu_Deiner_Textdatei"
SET "ausgabe=Laufwerk_und_Pfad_zu_Deiner_Ausgabedatei"
SET "suchzeichen=""
SET "ersetzungszeichen="

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

REM Datei zeilenweise auslesen 
REM und in Variable "zeile" schreiben
FOR /f "delims=" %%i IN ('FINDSTR . "%datei%"') DO (
SET zeile=%%i& CALL :ersetzen !zeile!
)
GOTO :eof

:ersetzen
REM Das Suchzeichen mit dem Ersetzungsteichen tauschen
SET zeile=!zeile:%suchzeichen%=%ersetzungszeichen%!

REM Ergebnis in die Ausgabedatei schreiben
ECHO !zeile!>>%ausgabe%
GOTO :eof

:eof



Viel Spass beim Testen!

Herzliche Grüße
batti-batch

Antwort 2 von MichaelS

also ich habe das jetzt einfach in ein neues txt dokument kopiert und mal versucht, jedoch klappt das leider nicht


@ECHO off
SETLOCAL enabledelayedexpansion

REM
REM Testprogramm
REM Ersetzen von Zeichen und Schreiben in eine neue Datei
REM
REM lauffaehig ab Windows 2000
REM 


SET "test.txt=D:\output\"
SET "testneu.txt=D:\output\"
SET "suchzeichen=""
SET "ersetzungszeichen="

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

REM Datei zeilenweise auslesen 
REM und in Variable "zeile" schreiben
FOR /f "delims=" %%i IN ('FINDSTR . "%datei%"') DO (
SET zeile=%%i& CALL :ersetzen !zeile!
)
GOTO :eof

:ersetzen
REM Das Suchzeichen mit dem Ersetzungsteichen tauschen
SET zeile=!zeile:%suchzeichen%=%ersetzungszeichen%!

REM Ergebnis in die Ausgabedatei schreiben
ECHO !zeile!>>%ausgabe%
GOTO :eof

:eof


Antwort 3 von batti-batch

Hallo MichaelS,


was genau klappt denn nicht?
Wenn Du den Code in Notepad (das ist der Editor auf Deinem PC; mit einem "normalen" Textprogramm solltest Du es nicht versuchen) kopierst, musst Du diese Datei als *.bat abspeichern. Wähle dazu beim Speichern die Option "Alle Dateien" und gib als Name z.B.

michael.bat 


ein.
Diese Datei ist dann als Batch unter DOS lauffähig.


Viel Spass beim Testen!

Herzliche Grüße
batti-batch

Antwort 4 von MichaelS

Also als.bat hab ich sie schon benannt.
das problem ist, das dos fenster bzw eingabeaufforderung öffnet nur ganz kurz und dann ist sie wieder weg.
und nichts ist passiert.

Antwort 5 von batti-batch

Hallo MichaelS,


versuche, diese Datei in der DOS-Eingabeaufforderung zu starten, mit einem Doppelklick wird sie zwar auch funktionieren, davon ist aber in diesem Fall abzuraten.

Vergiss bitte nicht, die vorher notwendigen Anpassungen an Deine Umgebung vorzunehmen.

Dann starte dieses Programm direkt am DOS-Prompt (also innerhalb des schwarzen DOS-Fensters):

michael.bat [ENTER]


Das Umbenennen von Dateien geht recht schnell...


Viel Spass beim Testen!

Herzliche Grüße
batti-batch

Antwort 6 von MichaelS

Hi,
also jetzt hat es geklappt. Nur ein Problem habe ich.
Wenn ich ausgangsdatei und Eingangsdatei als gleiche Datei bezeichne,
dann schreibt er das ohne "" einfach unter den Text mit den "".
Kann ich das noch irgendwie umgehen?
Danke

Antwort 7 von batti-batch

Hallo MichaelS,


ich freue mich, das es funktioniert hat.

Das restliche Problem ist sehr heikel, deswegen solltest Du davon die Finger lassen: wenn irgendwas schief geht, wird Deine Ausgangsdatei unbrauchbar (das ist bei Suchen und Ersetzen schnell passiert) - deshalb die Lösung mit einer separaten Ausgabedatei!

Denke einfach daran: Man sollte niemals die Ausgangsdatei verändern.

Die kleine Mühe, nach einer Kontrolle ein Umbenennen vorzunehmen, lohnt sich.

Herzliche Grüße
batti-batch

Antwort 8 von MichaelS

also ich denke mal das passt hier auch noch rein. da ihr euch gut mit batch dateien auskennt.

also ich habe folgenden code


@echo off
cls
start D:\test\launch.xls
start D:\test\data\patch.bat
start explorer.exe /e, ""D:\test\output""
:ende
cls


Das Ziel davon soll sein,
das erst die Launch.xls geöffnet wird.
Wenn sie geschlossen wird öffnet sich patch.bat
Und wenn diese fertig ist soll sich der Explorer öffnen und das Verzeichnis D:\test\output anzeigen
DAS FUNKTIONIERT ALLES SUPER,
aber das Problem ist, das die Eingabeaufforderung immernoch offen ist am ende mit der Zeile D:\test\data
das ist ja das Verzeichnis der bat.
kann ich da irgendetwas machen? das sich dieses fenster schliest?
ich habe es schon mit dem Wort exit am ende der Bat versucht (nicht patch.bat) sondern die welche diese startet, jedoch ohne erfolg.

achja die patch.dat ist die datei die die anführungszeichen entfernt, danke nochmals dafür

Antwort 9 von Player1987

oh *Z* jetzt hab ich das account von meinem bruder benutzt.
Sorry

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: