Powershell mehrerer Ordner erstellen

skusi

Lt. Junior Grade
Registriert
Juli 2014
Beiträge
270
Hallo,

bin noch neu in dem Thema. Aber ich probiere gerne rum. Ich würde gerne mehrere Ordner in verschiedenen Ordner anlegen. Z.B. User 1-20 bekommen alle ein zusätzlichen Ordner.
mit dem Befehl New-Item -Name "Test123" -Path "U:\User\A" -itemType Directory
Bei der Zeile mit "U:\User\A" würde ich auch gerne "U:\User\B" usw. einbinden. Wie packe ich das in einer Variable ? wo ich mehrere Ordner ansprechen kann.
 
Für den Test habe ich es mal so gemacht.

#Ordner in einer Variable
$folders = @('C:\Test', 'C:\','C:\Users\B)

$folders.ForEach( {

New-Item -Name "Test2"-Value "$folders" -itemType Directory
})
Der Part mit -Value "$folders" stimmt nicht. Eine Idee wie ich das umformulieren kann ?
 
$_ enthält den wert für jeden schleifendurchlauf, steht da auch so.

PowerShell:
$folders = @('C:\Test', 'C:\', 'C:\Users\B')

$folders.ForEach({
    New-Item -Path $_ -Name "Test2" -itemType "directory"
})
 
Oh Cool Danke! - wieder was gelernt. Macht es nicht mehr Sinn, wenn es viele Ordner sind mit einer Text Datei zu arbeiten ? Wie greife ich auf eine Textdatei zu wo die Ordner drin stehen wo ein Zusatz Ordner erstellt werden sollte.
 
dann liest du eben eine datei aus und behandelst jede zeile innerhalb von foreach - das schaffst du aber bestimmt auch selbst :)
 
Powershell ist Powershell und Arbeitet meistens mit Listen. :-)
PowerShell:
[string[]] $FolderNames = 'UserA', 'UserB'
New-Item -ItemType Directory -Path $FolderNames
Muß man im Zweifel ein bißchen jonglieren, aber grad mit Dateien als Input (wo eine Liste von Ordnern drinsteht) geht das prima, ist ein Einzeiler.

Falls nicht schon gefunden, gibt es da so ein nettes cmdlet Get-Help, was einem so ziemlich alles verrät was man vielleicht wissen will (und ein wenig mehr).
 
  • Gefällt mir
Reaktionen: aragorn92
Also in meiner Liste sind die Namen untereinander geschrieben und müssten einzeln ausgelesen.

$FILE = Get-Content C:\Users\XCV\TestDaten.txt
foreach ($LINE in $FILE){

$folders = @('C:\Users\XCV\$LINE')

$folders.ForEach
New-Item -Path $_ -Name "Test2" -itemType "directory"

}
ich habe das mal so gemacht. Aber leider fehlt mir was...das will nicht ganz funktionieren. Hat jemand eine Idee ?
 
Ah stimmt die habe ich vergessen. Klappt trotzdem nicht. Kann ich das überhaupt schreiben mit dem PATH ?
$folders = @('C:\Users\XCV\$LINE') hier drin ist eine Variable.
 
Wenn die gewünschten Ordner, die du erstellen willst einzeln untereinander in TestDaten.txt stehen, dürfte der Code unten ausreichen:

Code:
$FILE = Get-Content C:\Users\XCV\TestDaten.txt
foreach ($LINE in $FILE){

New-Item -Path $LINE  -Type "directory"

}
 
Ja ich habe es jetzt auch hinbekommen. Ich hatte oben zwei Schleifen.

Closed.
 
Für ganz Verrückte:
PowerShell:
New-Item -ItemType Directory -Path (Get-Content 'Path/To/List.txt')

skusi schrieb:
$folders = @('C:\Users\XCV\$LINE') hier drin ist eine Variable.
Und ein kleiner Fehler außerdem: Für string interpolation bitte doppelte Anführungszeichen. Mit einfachen wird einfach nur das Literal übernommen. Mit zweifachen wird der String vor Verwendung noch ausgewertet.
 
Zurück
Oben