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, 666 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Führende Nullen hinzufügen (6)

Frage von Erik72 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batchdatei für Aufgabenplanung zum Löschen von Backups (2)

Frage von Winuser zum Thema Batch & Shell ...

Datenbanken
gelöst T-SQL: Inhalt verschiedener Spalten in eine Spalte schreiben (2)

Frage von Suilven zum Thema Datenbanken ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(8)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte