Anführungszeichen per Batch aus Datei löschen
noch nicht ganz klar..
Hallo Leute,
Vorerst mal ein
echo "hallo" >all
denn ich bin neu hier!
Ich habe Eure Beiträge zum entfernen von Anführungszeichen per BATCH in einer Textdate gelesen aber leider habe ich einfach noch keine Lösung zusammengebracht.
Alle beschriebenen Codezeilen haben bei mit nicht funktioniert
Ich habe eine Textdatei die solche Zeilen enthält:
CAB;Speicherkarte\"2a Pocket PC.cabs\Security Check.WM5\Sec_aus.CAB";
CAB;Speicherkarte\"2a Pocket PC.cabs\Ident Eintrag\HTC_Trinity_Ident.cab";
u.s.w
und möchte per BATCH ALLE Anführungszeichen aus der Datei entfernen und dann wieder eine Datei schreiben die so aussieht:
CAB;Speicherkarte\2a Pocket PC.cabs\Security Check.WM5\Sec_aus.CAB;
CAB;Speicherkarte\2a Pocket PC.cabs\Ident Eintrag\HTC_Trinity_Ident.cab;
Hat jemand von Euch eine Idee oder ein paar Beispielcodezeilen für mich??
Hallo Leute,
Vorerst mal ein
echo "hallo" >all
denn ich bin neu hier!
Ich habe Eure Beiträge zum entfernen von Anführungszeichen per BATCH in einer Textdate gelesen aber leider habe ich einfach noch keine Lösung zusammengebracht.
Alle beschriebenen Codezeilen haben bei mit nicht funktioniert
Ich habe eine Textdatei die solche Zeilen enthält:
CAB;Speicherkarte\"2a Pocket PC.cabs\Security Check.WM5\Sec_aus.CAB";
CAB;Speicherkarte\"2a Pocket PC.cabs\Ident Eintrag\HTC_Trinity_Ident.cab";
u.s.w
und möchte per BATCH ALLE Anführungszeichen aus der Datei entfernen und dann wieder eine Datei schreiben die so aussieht:
CAB;Speicherkarte\2a Pocket PC.cabs\Security Check.WM5\Sec_aus.CAB;
CAB;Speicherkarte\2a Pocket PC.cabs\Ident Eintrag\HTC_Trinity_Ident.cab;
Hat jemand von Euch eine Idee oder ein paar Beispielcodezeilen für mich??
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 49523
Url: https://administrator.de/forum/anfuehrungszeichen-per-batch-aus-datei-loeschen-49523.html
Ausgedruckt am: 10.01.2025 um 16:01 Uhr
11 Kommentare
Neuester Kommentar
Moin pbelcl,
willkommen im Forum.
Eine Variante wäre das zeilenweise Speichern in eine Variable und dem anschliessenden Ersetzen aller Anführungszeichen durch "nichts".
(Oder "nyscht", wie geTuemII schreiben würde....).
Vorgekaspert am CMD-Prompt
Im Batch:
HTH
Biber
willkommen im Forum.
Eine Variante wäre das zeilenweise Speichern in eine Variable und dem anschliessenden Ersetzen aller Anführungszeichen durch "nichts".
(Oder "nyscht", wie geTuemII schreiben würde....).
Vorgekaspert am CMD-Prompt
(=18:09:18 D:\temp=)
>type f:\administrator\pbelcl.txt
CAB;Speicherkarte\"2a Pocket PC.cabs\Security Check.WM5\Sec_aus.CAB";
CAB;Speicherkarte\"2a Pocket PC.cabs\Ident Eintrag\HTC_Trinity_Ident.cab";
(=18:09:19 D:\temp=)
>for /f "delims=" %i in (f:\administrator\pbelcl.txt) do @set "line=%i" & @echo !line:"=!
CAB;Speicherkarte\2a Pocket PC.cabs\Security Check.WM5\Sec_aus.CAB;
CAB;Speicherkarte\2a Pocket PC.cabs\Ident Eintrag\HTC_Trinity_Ident.cab;
Im Batch:
@echo off & setlocal enableDelayedExpansion
...
if exist kopieOhneAnfüzeichen.txt del kopieOhneAnfüzeichen.txt
for /f "delims=" %%i in (originaldatei.txt) do (
set "line=%%i"
echo !line:"=!>>kopieOhneAnfüzeichen.txt
)
REM ggf ein copy /y kopieOhneAnfüzeichen.txt originaldatei.txt
...
HTH
Biber
Moin pbelcl,
nein, war mein Fehler...wieder mal nicht getestet.
Jedenfalls nicht die Umleitung - ich hab es natürlich nur auf dem Bildschirm angeschaut.
In diesem Fall versagt der "Echo ...>>datei" Befehl wegen des Anführungszeichens.
Mach es lieber so:
Und beim Aufruf umleiten.
Gruß
Biber
nein, war mein Fehler...wieder mal nicht getestet.
Jedenfalls nicht die Umleitung - ich hab es natürlich nur auf dem Bildschirm angeschaut.
In diesem Fall versagt der "Echo ...>>datei" Befehl wegen des Anführungszeichens.
Mach es lieber so:
::---Pbelcl.bat
@echo off & setlocal enableDelayedExpansion
for /f "delims=" %%i in (source.txt) do (
set "line=%%i"
echo !line:"=!
)
Und beim Aufruf umleiten.
pbelcl.bat>target.txt
Gruß
Biber
hallo an alle,
vielen dank fürs wieder öffnen des threads (:
hab so ein ähnliches problem, dass ich eine textdatei auslese und die anführungszeichen gleich löschen lassen will.
hab das auch scho gleich versucht wie oben beschrieben:
bekomm allerdings immer die meldung "Maximale Rekursionstiefe für SETLOCAL erreicht" im Dos-Fenster. das macht er allerdings in einer endlosschleife.
und meine kopie.txt ist leider leer.
danke für die hilfe (:
lg chris
vielen dank fürs wieder öffnen des threads (:
hab so ein ähnliches problem, dass ich eine textdatei auslese und die anführungszeichen gleich löschen lassen will.
hab das auch scho gleich versucht wie oben beschrieben:
@echo off & setlocal enableDelayedExpansion
batch.bat>kopie.txt
if exist kopie.txt del kopie.txt
for /f "delims=" %%i in (test.txt) do (
set "line=%%i"
echo !line:"=!
)
bekomm allerdings immer die meldung "Maximale Rekursionstiefe für SETLOCAL erreicht" im Dos-Fenster. das macht er allerdings in einer endlosschleife.
und meine kopie.txt ist leider leer.
danke für die hilfe (:
lg chris
Moin thats,
Du musst es wie folgt umstellen:
und aufrufen vom CMD-Prompt musst Du die so:
Oder erstmal zum Testen ohne Umleitung in eine Datei Kopie.txt
HTH
Biber
Du musst es wie folgt umstellen:
::------Das <b>ist</b> die Datei Batch.bat----
@echo off & setlocal enableDelayedExpansion
REM brauchst Du nicht ...if exist kopie.txt del kopie.txt
for /f "delims=" %%i in (test.txt) do (
set "line=%%i"
echo !line:"=!
)
::-------Ende der Datei Batch.bat
und aufrufen vom CMD-Prompt musst Du die so:
batch.bat>kopie.txt
Oder erstmal zum Testen ohne Umleitung in eine Datei Kopie.txt
batch.bat
HTH
Biber
ha super, so läufts jetzt auch. glaub mein fehler war auch einfach der, dass ich die umleitung in die batch-datei mit rein geschrieben habe und nicht über die konsole aufgerufen habe.
hab jetzt nur mehr ein datumsproblem, dass ich mir die datei raussuchen muss aus dateien:
"Protokolldatei von Betriebstag %tag%.TXT" und hier solls dann die datei mit dem heutigen tag sein.
so funktionierts allerdings nicht:
hab jetzt nur mehr ein datumsproblem, dass ich mir die datei raussuchen muss aus dateien:
"Protokolldatei von Betriebstag %tag%.TXT" und hier solls dann die datei mit dem heutigen tag sein.
so funktionierts allerdings nicht:
@echo off & setlocal enableDelayedExpansion
set tag=%date:~-10,2%
for /f "delims=" %%i in (Protokolldatei von Betriebstag %tag%.TXT) do (
set "line=%%i"
echo !line:"=!
)
del Protokolldatei von Betriebstag %tag%.TXT
ren kopie.txt Protokolldatei von Betriebstag %tag%.TXT
Moin thats,
nicht hauen jetzt, aber.... nun sind wieder ein paar Anführungszeichen zu wenig drin...
Die Anführungszeichen müssen bei CMD-Anweisungen verwendet werden, wenn einer der Parameter aus mehreren Worten besteht. Also z.B. Dateinamen mit Leerzeichen.
In Deiner Skizze dann also:
So in etwa...
Gruss Biber
nicht hauen jetzt, aber.... nun sind wieder ein paar Anführungszeichen zu wenig drin...
Die Anführungszeichen müssen bei CMD-Anweisungen verwendet werden, wenn einer der Parameter aus mehreren Worten besteht. Also z.B. Dateinamen mit Leerzeichen.
In Deiner Skizze dann also:
@echo off & setlocal enableDelayedExpansion
set tag=%date:~-10,2%
REM ......ich hoffe, das stimmt... bei mir kommt da nichts raus, weil %date%-Format bei mir "06.02.2007" ist.
REM Nächste Zeile: Der Dateiname in Anführungszeichen
for /f "delims=" %%i in ("Protokolldatei von Betriebstag %tag%.TXT") do (
set "line=%%i"
echo !line:"=!
)
REM NACH DEM TESTEN DAS REM ENTFERNEN ---auch hier: "Dateiname in Anfü-Zeichen"
REM del "Protokolldatei von Betriebstag %tag%.TXT"
REM ren kopie.txt "Protokolldatei von Betriebstag %tag%.TXT"
So in etwa...
Gruss Biber
hallo biber,
danke. habs einstweilen so gelöst:
aufruf.bat
batch.bat
und ich muss sagen, es funktioniert hervorragend beim testen. (:
grüße thats
danke. habs einstweilen so gelöst:
aufruf.bat
if exist kopie.txt del kopie.txt
set tag=%date:~-10,2%
set pfad="C:\Dokumente und Einstellungen\ibv_stern\Desktop"
set datei="Protokolldatei von Betriebstag "%tag%".TXT"
copy %pfad%\%datei% %pfad%\kopie1.txt
batch.bat>kopie.txt
batch.bat
@echo off & setlocal enableDelayedExpansion
set tag=%date:~-10,2%
set pfad="C:\Dokumente und Einstellungen\ibv_stern\Desktop"
set datei="Protokolldatei von Betriebstag "%tag%".TXT"
for /f "delims=" %%i in (kopie1.txt) do (
set "line=%%i"
echo !line:"=!
)
copy %pfad%\kopie.txt %pfad%\kopie1.txt
del %datei%
ren kopie1.txt %datei%
del kopie.txt
und ich muss sagen, es funktioniert hervorragend beim testen. (:
grüße thats