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

gelöst Mit Batchdatei Inhalte einer csv ändern

Mitglied: Diddi-tb

Diddi-tb (Level 1) - Jetzt verbinden

16.05.2019 um 07:25 Uhr, 164 Aufrufe, 3 Kommentare, 1 Danke

Hallo zusammen,

ich benötige mal wieder euren Rat. Zum Abgleich in unserer Warenwirtschaft muss ich eine csv Datei anpassen. Dies hat in der ersten Spalte EAN Nummern, einige dieser Nummern haben den Zusatz _afn und sehen so aus: 1234567891234_afn

Nun möchte ich mit Hilfe einer Batchdatei den Anhang _afn entfernen. Hier im Forum habe ich schon einige Beiträge gefunden die mir weitergeholfen haben. Im Moment sieht die Batchdatei so aus:

setlocal enabledelayedexpansion

SET "quell_datei=C:\FNSKU\*.csv"
SET "ziel_datei=C:\FNSKU\FNSKU.csv"
SET "suchen_nach=_afn"
SET "ersetzen_durch="

REM Ausgabe einer Fehlermeldung und Programmabbruch
REM falls die Variable "suchen_nach" nicht definiert ist
IF NOT DEFINED suchen_nach (ECHO Fehler: Die Variable suchen_nach nicht definiert^^!&GOTO :eof)

REM Loeschen der Ausgabedatei, falls sie (noch) existiert
IF EXIST %ziel_datei% (DEL /f %ziel_datei% 1>NUL 2>NUL)

REM Quell-Datei zeilenweise auslesen
REM und in Variable "zeile" schreiben
FOR /f "delims=" %%i IN ('FINDSTR . "%quell_datei%"') DO (
SET zeile=%%i& CALL :ersetzen !zeile!
)
GOTO :weiter
:ersetzen
REM innerhalb der Variable "zeile"
REM den Inhalt der Variable "suchen_nach" suchen
REM und diese durch den Inhalt der Variable "ersetzen_durch" ersetzen
SET zeile=!zeile:%suchen_nach%=%ersetzen_durch%!

REM Inhalt der Variable "zeile" in die Ausgabedatei schreiben
IF [!zeile!] EQU [] (ECHO.>>%ziel_datei%) ELSE (ECHO !zeile!>>%ziel_datei%)
GOTO :eof

:weiter
REM weitere Verarbeitung

pause

Hier eine Beispielzeile aus meiner Ausgangsdatei:

"018463769372_afn","X000FDP11D","B0007TMOFS","NewItem","SELLABLE","0"

Nach dem Durchlauf der Batchdatei sieht sie so aus:

C:\FNSKU\16133574089018026.csv:"018463769372","X000FDP11D","B0007TMOFS","NewItem","SELLABLE","0"


Das _afn wird wie gewünscht entfern, allderdings wird der Pfad der Ausgangsdatei C:\FNSKU\16133574089018026.csv: hinzugefügt. Allerdings kann ich die Zieldatei so nicht gebrauchen. Gibt es eine Möglichkeit die Datei so anzupassen, das die Pfadangabe nicht mit in die Zieldatei geschrieben wird?

Gerne nehme ich auch andere Ideen zum lösen der Thematik an. Es mit einer Batchdatei zu lösen war für mich als Nichtprogrammierer der einfachste Weg.

Vorab schon mal vielen Dank!

Gruß

Stefan
Mitglied: 139708
16.05.2019, aktualisiert um 11:13 Uhr
Moin.
Für sowas nimmt man heutzutage objektorientierte Skriptsprachen wie z.B. Powershell
Ich gehe hier davon aus das die CSV keine Überschriften hat, da du keine erwähnst. Ersetzt wird "Inplace" für alle CSV Dateien eines Ordners.
01.
dir 'C:\FNSKU' -File -Filter *.csv | %{
02.
    $csv = Import-CSV $_.Fullname -Delimiter ","
03.
    $csv | %{$_.'seller-sku' = $_.'seller-sku' -replace '_afn$',''}
04.
    $csv | Export-Csv $_.Fullname -Delimiter "," -NoType -Encoding UTF8
05.
}
Gruß wireguard
Bitte warten ..
Mitglied: Diddi-tb
16.05.2019 um 10:35 Uhr
Moin,

Danke für Deine Rückmeldung.

Zitat von 139708:
Für sowas nimmt man heutzutage objektorientierte Skriptsprachen wie z.B. Powershell

Da hast Du bestimmt recht, es war eben die Herangehensweise in die ich mich am einfachsten einlesen konnte.


Zitat von 139708:
Ich gehe hier davon aus das die CSV keine Überschriften hat, da du keine erwähnst. Ersetzt wird "Inplace" für alle CSV Dateien eines Ordners.

Es gibt eine Kopfzeile, dachte das wäre für das entfernen nicht wichtig. Die Kopfzeile sieht wie folgt aus:
"seller-sku","fulfillment-channel-sku","asin","condition-type","Warehouse-Condition-code","Quantity Available"



Zitat von 139708:
01.
> dir 'C:\FNSKU' -File -Filter *.csv | %{
02.
>     $csv = Import-CSV $_.Fullname -Delimiter "," -Header (1..6)
03.
>     $csv | %{$_.1 = $_.1 -replace '_afn$',''}
04.
>     $csv | ConvertTo-Csv -Delimiter "," | Select -skip 1 | sc $_.Fullname
05.
> }
06.
> 

Dieser Code ist dann für Powershell gedacht?

Gruß Stefan
Bitte warten ..
Mitglied: 139708
LÖSUNG 16.05.2019 um 10:45 Uhr
Ja das ist Powershell. Habe den Code an deine neuen Bedingungen oben angepasst.

Gruß w.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batchdatei - CSV-Datei umbennen mit Zeitstempel

gelöst Frage von jweghornBatch & Shell7 Kommentare

Hallo zusammen, für mein Problem habe ich hier schon einiges gefunden, wurde aber für exakt meine Vorgabe nicht ganz ...

VB for Applications

CSV Inhalt automatisch bearbeiten - Wert verschieben

gelöst Frage von RJC-00VB for Applications5 Kommentare

Hallo zusammen, leider komme ich mit meinen eigenen Anstrenungen (Newbie) in Bezug auf VB Scripts leider nicht weiter und ...

Batch & Shell

Inhalt einer .csv mit PowerShell prüfen

gelöst Frage von Memo66Batch & Shell10 Kommentare

Hallo zusammen, ich bin noch bisschen am hin und her überlegen wie ich das Problem am besten löse: Ich ...

Windows Server

PowerShell Inhalt einer csv Datei löschen

gelöst Frage von makaroniWindows Server4 Kommentare

Hallo zusammen, ich möchter gerne automatisiert über einen Task alle 10 Min eine CSV Datei via Powershell einlesen und ...

Neue Wissensbeiträge
Off Topic
Europawahl 2019 - Ein Statement der Jugend
Information von Frank vor 19 StundenOff Topic13 Kommentare

Dies ist ein offener Brief. Ein Statement. Von einem großen Teil der Youtuber-Szene. Am Wochenende sind die EU-Wahlen und ...

Off Topic
Europawahl 2019
Information von Frank vor 1 TagOff Topic44 Kommentare

Vom 23. bis 26. Mai 2019 findet die Europawahl in den Mitgliedstaaten der Europäischen Union statt (ja auch in ...

Humor (lol)

Minister wollen offenbar Ausweispflicht für .de-Domain

Information von Kraemer vor 2 TagenHumor (lol)7 Kommentare

Zitat von Golem.de: Die zuständigen Verbraucherschutzminister fordern einem Medienbericht zufolge offenbar eine Ausweispflicht für .de-Domains. Das soll Betrugsfälle mit ...

Off Topic
Was als Noob hier mal gesagt werden musste
Information von th30ther vor 3 TagenOff Topic5 Kommentare

Moinsen wertes Forum, ich möchte mich an dieser Stelle mal beim Forum generell und bei aqui speziell bedanken! Ich ...

Heiß diskutierte Inhalte
Off Topic
Europawahl 2019
Information von FrankOff Topic44 Kommentare

Vom 23. bis 26. Mai 2019 findet die Europawahl in den Mitgliedstaaten der Europäischen Union statt (ja auch in ...

Router & Routing
ZyXEL ZyWALL USG 20 Routing
Frage von Oggy01Router & Routing20 Kommentare

Hallo, und wieder habe ich ein Problem mit dem Routing. Bis vor ein paar Tagen habe ich das mit ...

Off Topic
Europawahl 2019 - Ein Statement der Jugend
Information von FrankOff Topic13 Kommentare

Dies ist ein offener Brief. Ein Statement. Von einem großen Teil der Youtuber-Szene. Am Wochenende sind die EU-Wahlen und ...

Server-Hardware
Server Umbau
Frage von cyberworm83Server-Hardware10 Kommentare

Hallo zusammen, ich habe einen 19" Server (HP ProLiant DL160 G6) dieser ist auch super. ABER jetzt meine Frage: ...