Moin,
ich habe eine unformatierte Stückliste und möchte sie formatieren und neu abspeichern. Ich konnte schon einiges selber herausfinden, jedoch komme ich nicht weiter.
Zunächst hier die Stückliste wie ich sie erhalte:
Wichtig für mich...
...8stellige Nummer der Primärstückliste (Zeile 3: 54682496)
...4stellige Positionsnummer ohne anführende Nullen. [halb CHECK]
...8stellige Materialnummer (z.B. 20364701). [CHECK]
...Name des Bauteils ohne nachkommende Leerzeichen [halb CHECK]
...ggf. Änderung der Mengen (z.B. Zeile 9: alt ist 10, neu ist 6, demnach ist die Differenz -4)
Was ich bisher geschafft habe:
Die Ausgabe dazu:
Was ich will:
Die anführenden Nullen kann man mit Modulo weg kriegen z.B.
set z1=10000
set z2=!Zeile:~6,4!
set /a ges=%z1%%z2%%%10000
echo %ges%
Jedoch lässt sich das in der FOR-Schleife nicht verarbeiten. Es wird kein echo angezeicht. Außerhalb der Schleife funktioniert es..
Wäre MEGA wenn ihr mir helfen könnt
Gruß
Probby
ich habe eine unformatierte Stückliste und möchte sie formatieren und neu abspeichern. Ich konnte schon einiges selber herausfinden, jedoch komme ich nicht weiter.
Zunächst hier die Stückliste wie ich sie erhalte:
Code:
Stücklistenvergleich
Primärstückliste 54682496, 0505, , 3
Datum: 30.09.2017
-----------------------------------------------------------------------------------------------------------------
|Obj |Pos.|PTp|CAD|ObjektId|Objektkurztext | Menge|ME| | | Menge| Menge|ME| |
-----------------------------------------------------------------------------------------------------------------
| |0001|L |X |20364701|Halter | 10 |ST| | | | 6 |ST| |
| |0002|L |X |20365549|Adapter | 8 |ST| | | | 10 |ST| |
| |0003|L |X |20369622|Schraube | 2 |ST| | | | 2 |ST| |
| |0010|R |X |20115138|Rohr mit Flanschanschluss |12,000 |M | | | |12,000 |M | |
| |0220|R |X |20244473|Schlauch | 6,000 |M | | | | 6,000 |M | |
| |5550|L | |20234973|Scheibe Größe D40 | 12 |ST| | | | 12 |ST| |
-----------------------------------------------------------------------------------------------------------------
...8stellige Nummer der Primärstückliste (Zeile 3: 54682496)
...4stellige Positionsnummer ohne anführende Nullen. [halb CHECK]
...8stellige Materialnummer (z.B. 20364701). [CHECK]
...Name des Bauteils ohne nachkommende Leerzeichen [halb CHECK]
...ggf. Änderung der Mengen (z.B. Zeile 9: alt ist 10, neu ist 6, demnach ist die Differenz -4)
Was ich bisher geschafft habe:
Code:
@echo off &setlocal enabledelayedexpansion
set order=Projektname
set mat=12345678
set ugd=4205148
set Quelle=C:\stueckliste_roh.txt
set Ziel=C:\stueckliste_sauber.txt
type nul>"%Ziel%"
>>"%Ziel%" echo Order-Nr: %order%
>>"%Ziel%" echo MAT: %mat% / UGD: %ugd%
for /f "eol=- tokens=* skip=8 usebackq delims=" %%i in ("%Quelle%") do (
set "Zeile=%%i"
>>"%Ziel%" echo - added pos.!Zeile:~6,4! (!Zeile:~19,8! - !Zeile:~28,40!^)
)
Die Ausgabe dazu:
Code:
Order-Nr: Projektname
MAT: 12345678 / UGD: 4205148
- added pos.0001 (20364701 - Halter )
- added pos.0002 (20365549 - Adapter )
- added pos.0003 (20369622 - Schraube )
- added pos.0010 (20115138 - Rohr mit Flanschanschluss )
- added pos.0220 (20244473 - Schlauch )
- added pos.5550 (20234973 - Scheibe Größe D40 )
Was ich will:
Code:
Order-Nr: Projektname
MAT: 54682496 / UGD: 4205148
- added pos.1 (20364701 - Halter)
- added pos.2 (20365549 - Adapter)
- added pos.3 (20369622 - Schraube)
- added pos.10 (20115138 - Rohr mit Flanschanschluss)
- added pos.220 (20244473 - Schlauch)
- added pos.5550 (20234973 - Scheibe Größe D40)
Die anführenden Nullen kann man mit Modulo weg kriegen z.B.
set z1=10000
set z2=!Zeile:~6,4!
set /a ges=%z1%%z2%%%10000
echo %ges%
Jedoch lässt sich das in der FOR-Schleife nicht verarbeiten. Es wird kein echo angezeicht. Außerhalb der Schleife funktioniert es..
Wäre MEGA wenn ihr mir helfen könnt
Gruß
Probby
Zuletzt bearbeitet: