Top-Themen

Aktuelle Themen (A bis Z)

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, 710 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
VB for Applications
Access: Spalten ist Anzahl Wenn größer NULL
gelöst Frage von Pilger83VB for Applications11 Kommentare

Hallo zusammen, kurze Frage, wahrscheinlich mega simpl aber komm einfach nicht drauf auch mit google nicht. habe in Access ...

Batch & Shell
Batch Leerzeichen in nur bestimmten Spalten entfernen?
gelöst Frage von Komoran12Batch & Shell2 Kommentare

Hallo, erstmal allen ein schönes Pfingstwochenende!:) Ich suche gerade nach einer Möglichkeit per Batch in einer Csv mit mehrerer ...

Datenbanken
Die ersten 2 stellen in einer Spalte ändern
gelöst Frage von crashi09Datenbanken20 Kommentare

Hallo, Ich würde gerne auf unserem SQL Server in einer Tabelle eine Spalte ändern wie folgt. Es sollen nur ...

Batch & Shell
Batchdatei - HTML-Code aus CSV-Datei entfernen
gelöst Frage von jweghornBatch & Shell9 Kommentare

Hallo zusammen, ich habe eine CSV-Datei, in der sich in einer bestimmten Spalte, Aufzählungspunkte mit Text befinden. Diese sind ...

Neue Wissensbeiträge
DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 1 StundeDSL, VDSL

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 1 StundeWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 4 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement17 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...