flashback830
Goto Top

Mit Powershell Ordnerstruktur aus .csv anlegen

Hallo zusammen,

folgendes Problem, ich habe eine .csv Datei bekommen mit knapp 60k Einträgen. Die Struktur der csv soll in Ordnern nachgebildet werden und in den tiefsten Ordner jeweils nochmal 3 Ordner.

Also die csv sieht ungefähr so aus:

csv

Da sollte dann so aussehen:

test1\2ordner\A
test1\2ordner\B
test1\2ordner\C

test1\o3\A
test1\o3\B
test1\o3\C

test2\abc1\A
test2\abc1\B
test2\abc1\C

test2\abc2\A
test2\abc2\B
test2\abc2\C

test2\abc3\aa1\A
usw..

Die Ordner Struktur geht allerdings zum Teil bis zu 10 Ordner tief.

Ich bin mit der Powershell noch nicht so gut und mit csv geht meine Erfahrung gegen null. Ich würde mich daher sehr freuen wenn mir jemand weiter helfen könnte face-smile

Content-Key: 487925

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

Ausgedruckt am: 28.03.2024 um 13:03 Uhr

Mitglied: Kraemer
Kraemer 23.08.2019 um 09:44:41 Uhr
Goto Top
Moin,
Zitat von @flashback830:

Hallo zusammen,
...
Also die csv sieht ungefähr so aus:

und schon habe ich überhaupt keine Lust über dein "Problem" nachzudenken.

1. Entweder ist der Aufbau so, oder nicht
2. Eine CSV ist eine Textdatei - die bekommst du hier auch ohne Screenshot abgebildet.

Gruß
Mitglied: flashback830
flashback830 23.08.2019 um 10:05:36 Uhr
Goto Top
Hallo Kraemer,

der Aufbau ist so wie auf dem bild abgebildet. Das " test1\2ordner\A " soll den Ordner Pfad da stellen.
Also ich möchte diese Ordner anlegen und nicht die Datei um formatieren face-smile
Mitglied: H41mSh1C0R
H41mSh1C0R 23.08.2019 um 10:15:18 Uhr
Goto Top
Die Struktur der CSV ist doof.
Pro Zeile gehört ein Datensatz und für alle Einträge gelten die gleichen Spalten.

Root;Ordnerebene1;Ordnerebene2

m.M.n. Sinnvoll:
test1;;
test1;2ordner;
test1;2ordner;A

Wie wäre es mit den Einstiegsübungen?

- wie lese ich eine CSV ein
- wie baue ich eine Schleife um Object für Object zu benutzen, für jeden Durchlauf lege Verzeichnis an "Punkt"

Bei deiner "CSV" Struktur müsstest du noch prüfen die Pfade aus den einzelnen Zeilen zusammenbauen.

Aber egal ob so oder so, schreib mal was du bereits an Script hast!

VG
Mitglied: Kraemer
Kraemer 23.08.2019 um 10:28:39 Uhr
Goto Top
Zitat von @flashback830:
der Aufbau ist so wie auf dem bild abgebildet.
dann zeig her. Ohne, von mir auch aus anonymisierte, Textdatei bekommst du von mir keine Hilfestellung. Auf diese Ratespielchen habe ich einfach keine Lust mehr.
Mitglied: flashback830
flashback830 23.08.2019 um 10:43:31 Uhr
Goto Top
@ psuser - ich weiß nicht warum du deinen Beitrag wieder gelöscht hast aber vielen dank, das ist genau das was ich gesucht habe.
Mitglied: 140913
140913 23.08.2019 aktualisiert um 12:22:06 Uhr
Goto Top
Zitat von @flashback830:

@ psuser - ich weiß nicht warum du deinen Beitrag wieder gelöscht hast aber vielen dank, das ist genau das was ich gesucht habe.
Weil der noch einen entscheidenden Fehler drin hatte wenn du dir es nochmal ganz genau ansiehst, aber damit du auch noch was zu tun hast darfst du ihn jetzt gerne selbst suchen, dann lernst du dabei auch gleich nochwas face-wink.
Mitglied: flashback830
flashback830 25.08.2019 um 20:51:44 Uhr
Goto Top
ich hab keine Ahnung wo da der Fehler ist face-sad
Mitglied: 140913
140913 25.08.2019 aktualisiert um 21:49:26 Uhr
Goto Top
Löse das Rätsel zum Erfolg!
👓📖👨‍🎓🏋️🏋️🏋️🛌💤👷‍♀️👩‍🔧🏁✅
Mitglied: flashback830
flashback830 25.08.2019 um 21:54:30 Uhr
Goto Top
Brille, Lesen, Lernen, 3 Ketten Kaufen, schlafen, Bauarbeiter werden, Fahne aufstellen, Fertig... jetzt bin ich verwirrter als vorher

-ReadCount 1000 vlt ?
Mitglied: 140913
140913 26.08.2019 aktualisiert um 09:39:13 Uhr
Goto Top
Nöp.Raten bringt dich da nicht weiter, nur das Rätsel weis die Antwort wie du vorwärts kommst.
Ich warte noch 1-2 Wochen bevor ich die Lösung poste vielleicht kommst du ja noch drauf, will dir ja den Spaß und den Ehrgeiz nicht nehmen.
Mitglied: flashback830
flashback830 26.08.2019 um 10:05:39 Uhr
Goto Top
Das Problem an dem Rätsel ist es hat gestern bei mir zu hause noch völlig anders ausgesehen als hier..
ka
Mitglied: flashback830
flashback830 26.08.2019 um 10:37:30 Uhr
Goto Top
ich wär dir wirklich dankbar wenn du mir sagt was da nicht stimmt. Die Tatsache das es bei meiner kleinen test Datei wunder bar funktioniert aber bei der richtigen kein stück macht es nicht unbedingt besser.
Mitglied: Kraemer
Kraemer 26.08.2019 um 11:14:15 Uhr
Goto Top
🍿🍿🍿
Mitglied: 140913
140913 26.08.2019 aktualisiert um 11:36:23 Uhr
Goto Top
Zitat von @flashback830:

Das Problem an dem Rätsel ist es hat gestern bei mir zu hause noch völlig anders ausgesehen als hier..
Dein Browser/OS ist zu alt und unterstützt die aktuellen Unicode-Erweiterungen nicht.
ich wär dir wirklich dankbar wenn du mir sagt was da nicht stimmt.
Ich sehe kein Enthusiasmus bei dir face-smile. Wie gesagt in 1-2 Wochen solltest du so weit sein.

Zitat von @Kraemer:

🍿🍿🍿

back-to-top🏝️ 🍻

Mitglied: flashback830
flashback830 26.08.2019 um 12:13:23 Uhr
Goto Top
Ich verstehe was der Fehler ist, der macht alles hintereinander.

VERBOSE: Performing the operation "Create Directory" on target "Destination: C:\test\test\XXX\Kleinpumpwerke\KPW 22.4-002 In de Masch\KPW 22.4-003 In de Masch\KPW 22.4-004 In de Masc
h\KPW 22.4-005 Kirchenstieg\KPW 22.4-006 Quick Str. 123\KPW 22.4-007 Harbrookweg\KPW 22.4-008 Harbrookweg\KPW 22.4-009 Himmelmoorweg\KPW 22.4-010 Himmelmoorweg\

und wahrscheinlich liegt es an dem return, aber ka. Da hab ich dann ungefähr soviel Ahnung wie bei dem kümmerlichen Script was ich davor hatte....

$csv = "C:\test\text4.csv"  
$csv2 = "C:\test\textx1.csv"  
Type $csv -Encoding:String|Out-File $csv2 -Encoding UTF8

$folder = "C:\Test\"  
$subfolders = 'azv'  

#$var = get-content "$csv"  
#write-host $var

$file = Import-Csv 'C:\test\textx1.csv' -Delimiter ';'   

$ebene1 = '';  
$ebene2 = '';  
$ebene3 = '';  
$ebene4 = '';  
$pfad = '';  

foreach ($line in $file) 
{
  if ($line.ebene1 -ne '') {$ebene1 = $line.ebene1; $pfad = $ebene1};  
  if ($line.ebene2 -ne '') {$ebene2 = $line.ebene2; $pfad = $pfad + '\' +$ebene2};  
  if ($line.ebene3 -ne '') {$ebene3 = $line.ebene3; $pfad = $pfad + '\' +$ebene3};  
  if ($line.ebene4 -ne '') {$ebene4 = $line.ebene4; $pfad = $pfad + '\' +$ebene4};  
  write-host $pfad;
}
Mitglied: 140913
140913 06.09.2019 um 11:53:42 Uhr
Goto Top
Siehe PN.