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, 642 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
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Batch & Shell
gelöst Appx aus Image auslesen und entfernen (9)

Frage von Markus2016 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (15)

Frage von liquidbase zum Thema Windows Update ...

DSL, VDSL
Problem mit variernder Internetgeschwindigkeit (12)

Frage von schaurian zum Thema DSL, VDSL ...