Batch um Zeichen aus erster und letzter Zeile einer TXT Datei zu löschen
Hallo.
Wie der Titel schon sagt suche ich eine möglichkeit wie ich aus einer TXT Datei aus der ersten Zeile ein "-" (Bindestrich) entfernen kann. Der Rest der TXT Datei soll dabei nicht betrachtet werden. Nur die letzte Zeile wieder. Es geht um ein CNC Programm das sonst nicht von der Steuerung erkannt wird.
Bsp:
0 BEGIN PGM 0001-AT MM
1 FN 1: Q1 = +Q1 + +4
2 * - NUTENSTEIN-MS
3 CALL LBL 100
4 BLK FORM 0.1 Z X-1 Y-11 Z-20
5 BLK FORM 0.2 X+21 Y+1 Z+1
...
...
171 CYCL DEF 7.1 IX+1
172 CYCL DEF 7.2 IY-1
173 CYCL DEF 7.3 IZ+19,7
174 LBL 0
175 END PGM 0001-ATM
Also aus der ersten Zeile muss das Minus oder Bindestrich weg und aus der letzten Zeile ebenfalls.
Die Zeilen dazwischen natürlich nicht, denn das sind ja meine Koordinaten für die Bauteile.
Ich hoffe dass ihr mir helfen könnt. 2000 Programme von Hand ändern wäre sehr ärgerlich.....
Viele Grüße Daniel
Wie der Titel schon sagt suche ich eine möglichkeit wie ich aus einer TXT Datei aus der ersten Zeile ein "-" (Bindestrich) entfernen kann. Der Rest der TXT Datei soll dabei nicht betrachtet werden. Nur die letzte Zeile wieder. Es geht um ein CNC Programm das sonst nicht von der Steuerung erkannt wird.
Bsp:
0 BEGIN PGM 0001-AT MM
1 FN 1: Q1 = +Q1 + +4
2 * - NUTENSTEIN-MS
3 CALL LBL 100
4 BLK FORM 0.1 Z X-1 Y-11 Z-20
5 BLK FORM 0.2 X+21 Y+1 Z+1
...
...
171 CYCL DEF 7.1 IX+1
172 CYCL DEF 7.2 IY-1
173 CYCL DEF 7.3 IZ+19,7
174 LBL 0
175 END PGM 0001-ATM
Also aus der ersten Zeile muss das Minus oder Bindestrich weg und aus der letzten Zeile ebenfalls.
Die Zeilen dazwischen natürlich nicht, denn das sind ja meine Koordinaten für die Bauteile.
Ich hoffe dass ihr mir helfen könnt. 2000 Programme von Hand ändern wäre sehr ärgerlich.....
Viele Grüße Daniel
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 252653
Url: https://administrator.de/contentid/252653
Ausgedruckt am: 24.11.2024 um 03:11 Uhr
8 Kommentare
Neuester Kommentar
Hallo Bobby0712,
wenn es VBS sein darf, meinst du es in etwa so:
Wenn dem so geht, dann mit einer Schleife halt alle Dateien in deinem Ordner entsprechend bearbeiten.
Gruss
Tsuki
wenn es VBS sein darf, meinst du es in etwa so:
Ein = "D:\CNC mit Datei.cnc"
Aus = "D:\CNC ohne Datei.cnc"
Von = "-AT"
Nach = " AT"
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile(Aus).Write Replace(fso.OpenTextFile(Ein).ReadAll, Von, Nach)
msgbox "Fertig"
Wenn dem so geht, dann mit einer Schleife halt alle Dateien in deinem Ordner entsprechend bearbeiten.
Gruss
Tsuki
Hallo Bobby0712, willkommen im Forum.
Als Batchcode etwa so (ungetestet):
Der Code (wenn er denn für dich funktioniert) ließe sich auch erweitern, dass er alle Dateien eines Verzeichnisses verarbeitet.
Grüße
rubberman
Als Batchcode etwa so (ungetestet):
@echo off &setlocal
set "file=C:\datei.ext"
set "tmpfile=%temp%\file.tmp"
setlocal EnableDelayedExpansion
for /f %%i in ('type "!file!"^|find /c /v ""') do set /a "count = %%i - 2"
<"!file!" >"!tmpfile!" (
set "line=" &set /p "line="
echo(!line:-=!
for /l %%j in (1 1 %count%) do (
set "line=" &set /p "line="
echo(!line!
)
set "line=" &set /p "line="
echo(!line:-=!
)
move "!tmpfile!" "!file!"
Grüße
rubberman
Hallo rubberman,
ich weiß es ist schon eine weile her, dass dieses Thema behandelt wurde, aber vielleicht kannst du mir trotzdem helfen.
Ich brauche einen ähnlichen Batchcode wie dieser, allerdings möchte ich mehrere Dateien in einem Ordner bearbeiten und muss nur das aller erste Zeichen in der jeweiligen txt Datei löschen. Dieses ist allerdings ein Sonderzeichen.
Hier ist ein Beispiel:
%
:0010
G99G40G25
G0
M25
T2000
…
Es muss also nur diese 4-Eck entfernt werden und das bei ca 10000 Dateien Händisch ist das ganz schon viel Arbeit, aber vielleicht kannst du mir bei diesem Problem weiterhelfen, da ich selbst nicht ganz so viel Ahnung habe.
Vielen Dank
Gruß
4everalive
ich weiß es ist schon eine weile her, dass dieses Thema behandelt wurde, aber vielleicht kannst du mir trotzdem helfen.
Ich brauche einen ähnlichen Batchcode wie dieser, allerdings möchte ich mehrere Dateien in einem Ordner bearbeiten und muss nur das aller erste Zeichen in der jeweiligen txt Datei löschen. Dieses ist allerdings ein Sonderzeichen.
Hier ist ein Beispiel:
%
:0010
G99G40G25
G0
M25
T2000
…
Es muss also nur diese 4-Eck entfernt werden und das bei ca 10000 Dateien Händisch ist das ganz schon viel Arbeit, aber vielleicht kannst du mir bei diesem Problem weiterhelfen, da ich selbst nicht ganz so viel Ahnung habe.
Vielen Dank
Gruß
4everalive
Dieses Viereck kann ein einzelnes Zeichen sein, muss aber nicht. Kommt drauf an in welchem Charset der Text vorliegt. Also öffne die Datei mal in einem HEX Editor und schreib mal runter, welche Bytes vor dem % Zeichen (HEX Code 25) stehen. BTW Sollte die Datei mehr Binärdaten enthalten und nicht ausschließlich Text, dann ist Batch von vorn herein ungeeignet den Inhalt zu verarbeiten.
Steffen
Steffen
Zitat von @4everalive:
Hallo Steffen,
Ich hab eine einfache Datei mal in einem Hex-Editor geöffnet und ich hab das Ergebnis mal als Bild angehängt.
Hilft dir das weiter?
Vielen Dank auf jeden Fall
Hallo Steffen,
Ich hab eine einfache Datei mal in einem Hex-Editor geöffnet und ich hab das Ergebnis mal als Bild angehängt.
Hilft dir das weiter?
Vielen Dank auf jeden Fall
Moin
@echo off
set "ordner=D:\test"
powershell -EP ByPass -NoP -C "gci '%ordner%' -File | %%{[regex]::replace((gc $_.Fullname -raw),'^\x12','') | sc $_.Fullname}"
Hallo zusammen,
So jetzt wo ich Zeit hatte das ganze noch weiter zu testen, bin ich leider immer noch nicht am Ziel und nach längerem probieren komme ich alleine auch nicht weiter und brauche nochmal Hilfe.
Ich habe immer noch die gleiche Datei. Damit sie aber auf der CNC Maschine erkannt wird muss ich jetzt noch den ":" durch ein "O" ersetzen.
In dem Bild von der HEX Datei ist dieser ganz oben vor der Nummer "1005"
Kann mir hiermit nochmal jemand helfen?
Vielen Dank im schon mal.
So jetzt wo ich Zeit hatte das ganze noch weiter zu testen, bin ich leider immer noch nicht am Ziel und nach längerem probieren komme ich alleine auch nicht weiter und brauche nochmal Hilfe.
Ich habe immer noch die gleiche Datei. Damit sie aber auf der CNC Maschine erkannt wird muss ich jetzt noch den ":" durch ein "O" ersetzen.
In dem Bild von der HEX Datei ist dieser ganz oben vor der Nummer "1005"
Kann mir hiermit nochmal jemand helfen?
Vielen Dank im schon mal.