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
GELÖST

Powershell .csv export und excel import

Frage Entwicklung Batch & Shell

Mitglied: playmen

playmen (Level 1) - Jetzt verbinden

26.02.2015, aktualisiert 27.02.2015, 1562 Aufrufe, 12 Kommentare

Hallo

Ich möchte gerne aus einer bestehenden CSV Daten mit Powershell Exportieren und diesen Daten einzeln einer Variabel zuweisen um diese werde verwenden zu können.
Das habe ich bereits getestet:

$Users = Import-Csv "C:\Temp\textfile.csv" -Delimiter ';'
$Users | Select-Object Check

Mein hauptskript hat über 1500 Zeilen Code und ich brauche nur noch diese Funktion.

Ich muss Daten aus dem CSV Auslesen, diesen Daten einer Variabel zuteilen das ich diese einzeln in eine Excel mit dem Befehl $Checkliste1.Cells.Item(1,2) = $var_1
$var_1 sollte eben der Wert aus der CSV sein

Danke im voraus

Mitglied: colinardo
26.02.2015, aktualisiert um 16:42 Uhr
Hallo playmen,
das ist kein Problem, welchen Datensatz benötigst du denn aus deiner CSV-Datei ?
Am besten du postest einen kleinen Ausschnitt deiner CSV-Datei mit Überschriften
(Bitte nutze Code-Tags für deinen Quellcode: <code> Quellcode </code>.)

Beispiel
01.
$Users = Import-Csv "C:\Temp\textfile.csv" -Delimiter ';' 
02.
$var_1 = $Users | ?{$_.Username -eq 'Max Muster'} | select -ExpandProperty Check
Grüße Uwe
Bitte warten ..
Mitglied: playmen
26.02.2015 um 16:46 Uhr
Hallo
Ich benötige aus der CSV Datei immer die 1. und die 2. Spalte.
In der 1. steht Prüfkriterium und in der 2. Status(soll)
Bei Prüfkriterium soll z.B. Hardware oder Freier Speicher stehen und bei Status(soll) stehen Werte wie z.B. Grafikkarte OK oder > als 500GB
Bitte warten ..
Mitglied: colinardo
26.02.2015, aktualisiert um 16:52 Uhr
Zitat von playmen:
Ich benötige aus der CSV Datei immer die 1. und die 2. Spalte.
In der 1. steht Prüfkriterium und in der 2. Status(soll)
Welche Spaltennamen haben diese Spalten ? Und brauchst du diese von allen Datensätzen oder nur bestimmten ?
Wie soll die Variable als Ergebnis aussehen Array/ String ?
Bitte warten ..
Mitglied: playmen
26.02.2015 um 17:02 Uhr
Hallo
Hier ein Screenshot
http://www.bilderload.net/bild-csvPNG-68589.htm
am besten als String
Bitte warten ..
Mitglied: colinardo
26.02.2015, aktualisiert um 17:12 Uhr
Eine Excel-Datei mit den beiden Spalten kannst du direkt so erzeugen
01.
$Users = Import-Csv "C:\Temp\textfile.csv" -Delimiter ';' 
02.
$Users | select "Pruefkriterium","Soll (Status)" | export-csv "C:\test.csv" -NoType -Delimiter ";" -Encoding UTF8
Die kannst du dann direkt in Excel öffnen.

Ansonsten hast du nicht genug Infos geliefert in welcher Umgebung du programmierst / GUI ?. Es gibt hier so viele Möglichkeiten .... Denk immer daran das wir hier nicht vor deinem Script sitzen, es also nicht kennen !
Bitte warten ..
Mitglied: colinardo
26.02.2015, aktualisiert um 17:14 Uhr
Wenn du nicht weißt wie man eine CSV-Datei Zeile für Zeile mit einer foreach-Schleife durchläuft, das geht so
01.
$Users = Import-Csv "C:\Temp\textfile.csv" -Delimiter ';'  
02.
$users | %{ 
03.
    $_.Spaltenname1 
04.
    $_.Spaltenname2 
05.
}
hier wird für jede Zeile deiner CSV-Datei der Wert aus der jeweiligen Spalte ausgegeben. (Die Spaltennamen musst du hier natürlich anpassen)
Bitte warten ..
Mitglied: playmen
26.02.2015 um 17:14 Uhr
sollte gehen, tut es leider nicht

mit der ursprungs csv passiert das:
http://www.bilderload.net/bild-csv_originalPNG-68590.htm

die csv datei in die geschrieben wird sieht so aus:

http://www.bilderload.net/bild-csv_nacgPNG-68591.htm
Bitte warten ..
Mitglied: colinardo
26.02.2015, aktualisiert um 17:29 Uhr
Oh man, die Bilder bringen mir hier gar nichts. Beschreibe bitte mal vernünftig deine Ausgangslage mit zwei Original-Zeilen (mit der Überschriftenzeile) deiner CSV-Datei und was du "wie" "wo" gespeichert haben willst!! Das ist essentiell um dir hier effektiv helfen zu können. Denn es macht einen riesen Unterschied ob die Quelldaten eine Überschriftenzeile haben oder eben nicht ....
Wir sitzen hier ja nicht vor deinem Script !! Danke.

Für den Fall das deine CSV-Datei keine Überschriftenzeile besitzt, machst du dies so:
01.
$Users = Import-Csv "C:\Temp\textfile.csv" -Delimiter ';' -Header "1","2" 
02.
$Users | select "1","2" | export-csv "C:\test.csv" -NoType -Delimiter ";" -Encoding UTF8
Bitte warten ..
Mitglied: playmen
27.02.2015 um 08:32 Uhr
Hallo colinardo

Sorry das ich erst jetzt schreibe..
Ich erkläre dir mal was mein Skript machen soll.
Wenn man das Skript Startet öffnet sich eine Shell (ohne GUI demnach).

Der Sinn und Zweck ist ein kompliziertes Checklisten System mit Powershell abzulösen.
Das ganze funktioniert so:
1. Abfrage nach dem Namen des Techniker
2. Kundenname eingeben (überprüft ob der Kunde existiert.) Der Kunde ist bei uns einen Ordner welcher sich bei "T:\Kunden" befindet.
3. Jeder Kunde hat einen "23 Wartung" Ordner und da drin befindet sich ein weiterer Ordner mit dem "MonatJahr" und in diesem sind die einzelnen Server aufgelistet.
4. Der Techniker gibt an welchen Kunden (Punkt 2) und welchen Server er auswählen will (denjenigen für den er die Checkliste machen will).
5. Die Shell gibt mit dem Befehl "Switch" eine Liste aus von 15 Punkten (15 Funktionen z.B. Antivirus) und der Techniker kann sich indem er eine Zahl eingibt für eine Entscheiden.
5. Die Shell öffnet die gewünschte Funktion aus einer Vorlage heraus welche sich bei "T:\Organisation\Technik\Vorlagen" befindet. In dem Fall heisst diese "VOR_Antivirus.xltx".
6. Der Techniker speichert diese Excel Datei in einem "Verteiler Ordner" welche automatisch erkennt wenn sich diese Datei in dem Ordner befindet.
7. Der Techniker wird aufgefordert das Excel zu schliessen damit das Skript die Datei von dem Verteiler Ordner Verschieben kann in den Server Ordner des Kunden.

Das habe ich bereits alles gemacht.
Mein Chef will aber eine Weitere Funktion und zwar eine wo man die Möglichkeit hat die Checkliste der Funktionen je nach Kunde Anzupassen.
Heisst bei Jedem Kunde, bei jedem Server soll sich eine CSV Datei befinden wo der Techniker Anpassungen Rein schreiben kann (!bevor!) er das Skript startet.
Das Skript geht dann bevor es die Excel Checkliste der Funktion öffnet in diese CSV Datei, schaut ob da was drin steht und wenn etwas drin steht werden diese Daten welche drin stehen in die Checkliste der Funktionen eingebaut.

Hier mal ein Bild einer Chekliste http://www.bilderload.net/bild-UnbenanntPNG-68612.htm

Darum wäre es sinnvoll wenn mein Skript die Daten welche sich in der CSV befinden in einer Variabel gespeichert werden damit ich diese dann mit diesem Befehl :$Checkliste1.Cells.Item(1,1) = $var_2 in die Fehler eintragen kann.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 27.02.2015, aktualisiert um 09:58 Uhr
Das ist dann meine Interpretation deines Vorhabens
(du hast ja nicht geschrieben ob alle Daten in eine Zelle sollen, daher bin ich davon ausgegangen das die Daten jeweils in eine neue Zeile kommen)
01.
$Users = Import-Csv "C:\Temp\textfile.csv" -Delimiter ';' -Header "1","2" 
02.
for($i=0;$i -lt $Users.Length;$i++){ 
03.
    $Checkliste.Cells.Item((1+$i),1).Value2 = $Users[$i].'1' 
04.
    $Checkliste.Cells.Item((1+$)i,2).Value2 = $Users[$i].'2' 
05.
}
Willst du nicht Zeile für Zeile schreiben kannst du die Daten auch in ein zweidimensionales Array konvertieren und einem Range direkt zuweisen. Wie das geht kannst du hier nachlesen https://powertoe.wordpress.com/2010/11/05/how-to-get-data-into-an-excel- ...
Bitte warten ..
Mitglied: playmen
27.02.2015 um 09:58 Uhr
Hallo
Danke für deine Antwort

Frage
Warum machst du hier:
$Checkliste.Cells.Item(4+$i,1).Value2 = $Users[$i].'1'
4+$i ? |||||||||||

sorry falls es eine blöde frage ist, bin die Sprache noch am lernen..

Gruass
Bitte warten ..
Mitglied: colinardo
27.02.2015, aktualisiert um 10:59 Uhr
Zitat von playmen:
Frage
Warum machst du hier:
$Checkliste.Cells.Item(4+$i,1).Value2 = $Users[$i].'1'
4+$i ? |||||||||||
Ich wusste ja nicht in welcher Zeile der Excel-Tabelle du die Daten hineinschreiben willst, das bleibt dann dir überlassen ... hatte mich nur an deinem Bildchen überlassen

p.s. Wie du Bilder deinem Beitrag hinzufügst, kannst du in der Formatierungs-FAQ nachlesen.
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Outlook & Mail
Outlook Export und Import zwischen Windows und Mac

Frage von VoDa81 zum Thema Outlook & Mail ...

Batch & Shell
Powershell csv importiert keine backslashes (2)

Frage von Druide83 zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell CSV Auswertung in einer Schleife (3)

Frage von Johnny-CGN zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...