Speichern von Verzeichnisordnernamen in Array Powershell

8

Ich versuche, ein Skript zu schreiben, das die Namen aller Ordner in einem bestimmten Verzeichnis abruft und jedes als einen Eintrag in einem Array zurückgibt. Von hier aus würde ich jedes Array-Element verwenden, um eine größere Schleife auszuführen, die jedes Element als Parameter für einen späteren Funktionsaufruf verwendet. All dies geschieht durch Powershell.

Im Moment habe ich diesen Code:

%Vor%

Die $ path-Zeile ist korrekt und ruft alle Verzeichnisse ab, aber die foreach-Schleife ist das Problem, bei dem tatsächlich die einzelnen Zeichen des ersten Verzeichnisses anstelle des vollständigen Namens jedes Directorys für jedes Element gespeichert werden. Ich habe einige Nachforschungen darüber angestellt, wie Powershell Arrays erstellt, aber ich bin ein wenig verwirrt und so hoffte ich, dass jemand hier in der Lage sein könnte, mich in die richtige Richtung zu lenken.

Danke für Ihre Hilfe.

    
Jingles177 22.12.2012, 00:04
quelle

5 Antworten

14

Hier ist eine weitere Option, die eine Pipeline verwendet:

%Vor%     
Shay Levy 22.12.2012, 08:59
quelle
3

$ array = (dir * .txt) .FullName

$ array ist jetzt eine Liste von Pfaden für alle Textdateien im Verzeichnis.

    
user1949917 31.05.2013 22:53
quelle
3

Für Vollständigkeit und Lesbarkeit:

Dadurch werden alle Dateien in "somefolder" beginnend mit "F" in ein Array geladen.

%Vor%

Dies ruft alle Verzeichnisse des aktuellen Verzeichnisses ab:

%Vor%     
Gomibushi 05.09.2014 11:03
quelle
2
%Vor%     
parvez rafi 26.03.2017 20:38
quelle
1

Ich glaube, das Problem ist, dass Ihre foreach -Schleifenvariable $item.name ist. Was Sie wollen, ist eine Schleifenvariable namens $item , und Sie werden auf die name -Eigenschaft auf jedem zugreifen.

I.e.,

%Vor%

Beachten Sie auch, dass% $item.name nicht zugewiesen wurde. Wenn das Ergebnis in Powershell nicht in einer Variablen gespeichert, an einen anderen Befehl weitergeleitet oder anderweitig erfasst wird, wird es in den Rückgabewert der Funktion eingeschlossen.

    
jpmc26 22.12.2012 00:07
quelle