Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Batchdatei - entfernen von vorlaufenden Nullen in 2 Spalten

Frage Entwicklung Batch & Shell

Mitglied: modernsolution

modernsolution (Level 1) - Jetzt verbinden

10.02.2015 um 09:00 Uhr, 663 Aufrufe, 11 Kommentare

Hallo Leute,

folgende Situation:

Ich bekomme einen Lagerbestand von einem Vorlieferanten welchen ich per FTP runterladen muss.

Das Problem an der Sache ist das der Lieferant die Datei so liefert das bspw. bei einer Artikelnummer 650321 => 000000650321

Das gleiche Problem besteht in Spalte 2 wo die Anzahl des Lagerbestandes angegeben ist.

Gibt es eine Möglichkeit nachdem die Datei heruntergeladen ist die beiden spalten zu modifizieren !

Liebe Grüße

Timo Tyrakowski
Mitglied: 114757
10.02.2015 um 09:37 Uhr
Moin
Beispiel wie das mit Batch geht:
for /f "tokens=* delims=0" %%a in ("000000650321") DO @echo %%a
oder mit Powershell
"000000650321" -replace '^0*',''
Gruß jodel32
Bitte warten ..
Mitglied: modernsolution
10.02.2015 um 09:49 Uhr
also meine Batch sieht derzeit so aus:

@echo off
cd\
C:
cd C:\Batch
wget ftp://xxxxxxxx/Lagerbestand/lagerbestand.csv --user="xxxxxxxx" --password="xxxxxxxx"
"C:\Program Files (x86)\JTL-Software\JTL-wawi-ameise.exe" --server=xxxxxxx --database=Mandant_9 --dbuser=xxxxxx --dbpass=xxxxxxx --templateid=IMP8 --inputfile=lagerbestand.csv
del lagerbestand.csv

Spalte A und B muss bearbeitet werden

Wie müsste die Batch dann im gesamten aussehen !?
Bitte warten ..
Mitglied: modernsolution
10.02.2015 um 09:51 Uhr
und vorallem war die Artikelnummer nur ein beispiel ... es müssten alle Zeilen der Spalte verändert werden !
Bitte warten ..
Mitglied: 114757
10.02.2015, aktualisiert um 10:26 Uhr
Zitat von modernsolution:
und vorallem war die Artikelnummer nur ein beispiel ... es müssten alle Zeilen der Spalte verändert werden !
Schon klar, das geht aber mit jeder deiner Nummern , aber dir muss man es wieder vorbeten ...
Wie sieht denn die CSV-Datei aus ?? Trennzeichen, Überschriften, etc pp / Sonderzeichen ?.
Aber bitte bitte nutze Code-Tags für deinen Quellcode!

p.s. CSV-Dateien sind mit Powershell zuverlässiger handlebar ...
01.
$csv = Import-CSV "C:\temp\demo.csv" -Delimiter ";"  
02.
$csv | %{ 
03.
    $_.artikelnr = $_.artikelnr -replace '^0*','' 
04.
    $_.lagerbestand = $_.lagerbestand -replace '^0*','' 
05.
    $_.liefertermin = $_.liefertermin -replace '^0*','' 
06.
07.
$csv | export-csv "C:\temp\demo_out.csv" -Delimiter '|' -NoTypeInformation
(Spalten- und Dateinamen anpassen !)
Bitte warten ..
Mitglied: modernsolution
10.02.2015 um 10:06 Uhr
Entschuldige bitte bin in dem Bereich noch nicht so fit wie andere hier

Wie würde die Geschichte denn mit Powershell aussehen?

Ich muss das nicht umbedingt als Batch haben ;)

trennzeichen ist |

danke
Bitte warten ..
Mitglied: modernsolution
10.02.2015 um 10:07 Uhr
und ja überschrift ist in der ersten zeile !
Bitte warten ..
Mitglied: 114757
10.02.2015, aktualisiert um 10:10 Uhr
Zitat von modernsolution:
Wie würde die Geschichte denn mit Powershell aussehen?
Siehe oben... und nicht vergessen die Spaltennamen anzupassen...
Wenn die Spaltennamen Leerzeichen haben müssen sie in einfache Anführungszeichen eingeschlossen werden (')...
Bitte warten ..
Mitglied: modernsolution
10.02.2015 um 10:20 Uhr
01.
  
02.
Import-CSV "C:\Batch\lagerbestand.csv" -Delimiter "|" | %{ 
03.
    $_.artikelnr = $_.artikelnr -replace '^0*','' 
04.
    $_.lagerbestand = $_.lagerbestand -replace '^0*','' 
05.
    $_.liefertermin = $_.liefertermin -replace '^0*','' 
06.
 
07.
} | export-csv "C:\Batch\lagerbestand_out.csv" -Delimiter "|" -NoTypeInformation
habe ich was vergessen ? die out datei ist irgendwie leer ... zeigt aber auch keine fehler oder so an ?!
Bitte warten ..
Mitglied: 114757
10.02.2015, aktualisiert um 10:31 Uhr
ok dann hast du eine ältere PS Version, dann machs so das geht auf jeden Fall auch bei dir:
01.
$csv = Import-CSV "C:\Batch\lagerbestand.csv" -Delimiter ";"  
02.
$csv | %{ 
03.
    $_.artikelnr = $_.artikelnr -replace '^0*','' 
04.
    $_.lagerbestand = $_.lagerbestand -replace '^0*','' 
05.
    $_.liefertermin = $_.liefertermin -replace '^0*','' 
06.
07.
$csv | export-csv "C:\Batch\Lagerbestand_out.csv" -Delimiter '|' -NoTypeInformation
Bitte warten ..
Mitglied: modernsolution
10.02.2015 um 10:33 Uhr
passt soweit einzieges problem ist nun das er bei lagerbestand 0 nichts ausgibt ... sprich in spalte 2 "lagerbestand" müsste er im besten fall wenn dort nur 0 vorkommt eine null stehen lassen
Bitte warten ..
Mitglied: 114757
10.02.2015, aktualisiert um 10:51 Uhr
Zitat von modernsolution:

passt soweit einzieges problem ist nun das er bei lagerbestand 0 nichts ausgibt ... sprich in spalte 2 "lagerbestand"
müsste er im besten fall wenn dort nur 0 vorkommt eine null stehen lassen
kein Problem
$_.Lagerbestand = ($_.Lagerbestand -replace '^0*$','0') -replace '^0{2,}',''
-edit- angepasst für den Fall das es in der Spalte so aussieht '00000'
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(4)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Windows 7
gelöst GPO Internet Explorer Wartung entfernen (5)

Frage von xbast1x zum Thema Windows 7 ...

Windows Tools
gelöst Nicht mehr vorhandene Computer aus der AD entfernen (6)

Frage von M.Marz zum Thema Windows Tools ...

Exchange Server
gelöst Exchange als Domänencontroller entfernen (4)

Frage von nano1994 zum Thema Exchange Server ...

Ubuntu
gelöst Wie kann man es tun? Alle Zeilen mit 2 und mehr Leerzeichen entfernen (1)

Frage von takitano zum Thema Ubuntu ...

Heiß diskutierte Inhalte
Erkennung und -Abwehr
Virenschutz - Meinungen (23)

Frage von honeybee zum Thema Erkennung und -Abwehr ...

Windows 10
Welches OS für Firmengeräte? (17)

Frage von MarkusVH zum Thema Windows 10 ...

Hyper-V
Langsames Netzwerk i210 LAN Karte (11)

Frage von Akcent zum Thema Hyper-V ...

Netzwerke
Abisolierwerkzeug (11)

Frage von SarekHL zum Thema Netzwerke ...