dev-owl
Goto Top

Einfache Möglichkeit per Powershell - Daten zu filtern

Guten Tag,

ist es möglich via Powershell in einem Batch Skript eingebaut folgende CSV Ausgabe zu erhalten:

Beleg;Ja;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;

Eingabe-Datei wäre eine CSV:

Beleg;Firma;Max Muster AG;Max Muster;Musterstraße;123;12345;Musterhuasen;;;Deutschland;DE;Standard;EUR;5.00;45.00;;;;;;;;;;;;;;;2;;123456789;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;;;

Ich freue mich über eine Rückmeldung.

Content-Key: 616912

Url: https://administrator.de/contentid/616912

Printed on: April 16, 2024 at 16:04 o'clock

Mitglied: 146189
146189 Oct 28, 2020, updated at Oct 29, 2020 at 15:31:55 (UTC)
Goto Top
@echo off
set "file=d:\datei.csv"  
Powershell -EP ByPass -C "(ipcsv '%file%' -delimiter ';' -header (1..51) | select '1',@{n='ja';e={'Ja'}},'34','35','36','37','38','39','40','41','42','43','44','45','46','47','48' | convertto-csv -d ';' -NoType | select -skip 1) -replace '""'"  
Member: dev-owl
dev-owl Oct 29, 2020 at 11:54:06 (UTC)
Goto Top
Zitat von @146189:

> @echo off
> set "file=d:\datei.csv"  
> Powershell -EP ByPass -C "(ipcsv '%file%' -delimiter ';' -header (1..51) | select '1',@{n='ja';e={'Ja'}},'34','35','36','37','38','39','40','41','42','43','44','45','46','47','48' | convertto-csv -d ';'| select -skip 1) -replace '\"'"  
> 

Bei mir schreibt er das irgendwie nicht in die Ausgabedatei, dies Ausgabedatei würde datei-1.csv sein. Was mache ich falsch?

@echo off
set "file=d:\datei.csv"  
Powershell -EP ByPass -C "(ipcsv '%file%' -delimiter ';' -header (1..51) | select '1',@{n='ja';e={'Ja'}},'34','35','36','37','38','39','40','41','42','43','44','45','46','47','48' | convertto-csv -d ';'| out-file d:\datei-1.csv  -encoding OEM | select -skip 1) -replace '\"'"  
Mitglied: 146189
146189 Oct 29, 2020 updated at 15:25:38 (UTC)
Goto Top
Bei mir schreibt er das irgendwie nicht in die Ausgabedatei, dies Ausgabedatei würde datei-1.csv sein. Was mache ich falsch?
War ja auch nicht bei meinem Skript integriert, du wolltest ja nur eine "Ausgabe" face-smile, hast aber nicht gesagt welche deswegen nur auf der Konsole.
Was mache ich falsch?
Falsche Position von out-file face-wink

Mit Ausgabe in eine andere Datei so:
@echo off
set "input=d:\datei.csv"  
set "output=d:\datei-1.csv"  
Powershell -EP ByPass -C "(ipcsv '%input%' -delimiter ';' -header (1..51) | select '1',@{n='ja';e={'Ja'}},'34','35','36','37','38','39','40','41','42','43','44','45','46','47','48' | convertto-csv -delimiter ';' -NoType | select -skip 1) -replace '""' | Set-Content '%output%'"  
Member: dev-owl
dev-owl Oct 29, 2020 at 14:29:47 (UTC)
Goto Top
Ich bekomme da leider nachfolgende Fehlermeldung:

Fehler: Unbekannter Befehl

BESCHREIBUNG:
        SC ist ein Befehlszeilenprogramm für die Kommunikation mit dem
        Dienststeuerungs-Manager und mit Diensten.
SYNTAX:
        sc <Server> [Befehl] [Dienstname] <Option1> <Option2>...
Mitglied: 146189
146189 Oct 29, 2020 updated at 15:05:27 (UTC)
Goto Top
Hasst du wohl noch ne alte Powershell drauf, kannst den Befehl aber einfach durch Set-Content ersetzen kommt aufs gleiche drauf raus da Alias, habs dir oben ersetzt.
Mitglied: 146189
Solution 146189 Oct 29, 2020 updated at 15:31:10 (UTC)
Goto Top
War noch ein Typo drin, habe ich oben korrigiert, sorry. Läuft jetzt wie gewünscht(getestet).