lupolo
Goto Top

PowerShell: mehrere Variablen in Dateiname

Servus,

ich versuche über eine Schleife mir AD Werte ausgeben zu lassen. Hierzu soll eine Textdatei erzeugt werden, welche im Dateinamen den INDEX im Array und das aktuelle Datum enthält. Leider geht es nur, wenn ich eine Variable im Dateinamen angebe (siehe unten $i).

Script:
#akteulles Datum festlegen mit Format
$date = Get-Date -Format yyyy-MM-dd

#anlage der Firmen
$array = @("F1","F2","F3","F4","F5")  


foreach ($i in $array){

    Write-Host $i
    Get-ADGroup -Properties * -SearchBase "OU=$i,OU=Exchange,DC=Firma2,DC=Firma1,DC=local" -Filter * | ft name, mail, description >"H:\VT_Gruppen-$i.txt"  

versuche ich es mit
Get-ADGroup -Properties * -SearchBase "OU=$i,OU=Exchange,DC=Firma2,DC=Firma1,DC=local" -Filter * | ft name, mail, description >"H:\VT_$i_Gruppen-$date.txt"  

erstellt er mir in der Summe nur eine Datei.

Hat jemand eine Idee?
Danke vorab.

Content-ID: 465684

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

Ausgedruckt am: 08.11.2024 um 11:11 Uhr

emeriks
emeriks 25.06.2019 um 08:08:38 Uhr
Goto Top
Hi,
ich verstehe Dein Problem nicht. Du hast eine Lösung für Deine Anforderung, aber sie ist Dir nicht schick genug? Lieber schön sterben als anders leben?

E.
lupolo
lupolo 25.06.2019 um 08:14:14 Uhr
Goto Top
^^ nennt sich Perfektionismus
Dann mal anders formuliert: Wie kann ich mit zwei Variablen in einem Dateinamen arbeiten?

Sprich: >"H:\VT_$i_Gruppen-$date.txt"

Da wirft er mir immer nur VT_F1.txt etc. aus
SaschaRD
SaschaRD 25.06.2019 um 08:20:49 Uhr
Goto Top
Morgen zusammen,

so z.B.

$ADGroups = "F2,F1"  

foreach ($ADGroup in $ADGroups){
    Get-ADGroup -Properties * -SearchBase "OU=$ADGroup,$((Get-ADDomain).DistinguishedName)" -Filter * | Out-File "C:\Temp\VT-Gruppen_$($ADGroup)_$(Get-Date -Format yyyy-MM-dd).txt"  
}

Gruß, Sascha
emeriks
emeriks 25.06.2019 um 08:22:18 Uhr
Goto Top
Du musst $date auch füllen, sonst kommt da nix.

Ich weiß auch nicht, warum so viele glauben, dass "Einzeiler" soviel besser sind. Viel schöner. Viel "perfekter".
Meistens sind sie nur viel schwerer zu lesen und dauern nicht selten viel länger als Mehrzeiler.

Nicht vergessen: Wenn Du Dir deinen 8000-Zeichen-Einzeiler in 3 Jahren nochmal ansiehst, dann stehst Du davor und denkst .... was?
emeriks
emeriks 25.06.2019 um 08:23:51 Uhr
Goto Top
Zitat von @SaschaRD:
Da muss er ja wieder "umständlich" über eine weitere Variable gehen. face-wink
colinardo
colinardo 25.06.2019 aktualisiert um 08:36:41 Uhr
Goto Top
Nun ganz einfach...der Unterstrich könnte zu einer Variablen gehören, und da es die Variable $i_Gruppen als Variable nicht gibt setzt man in so einem Fall die Variable mit ${i} oder $($i) ein damit es eindeutig ist das man $i meint ...
"H:\VT_${i}_Gruppen-$date.txt"   
Bei $date ist es hier nicht zwingend nötig, da ein der darauffolgenden Punkt kein gültiger Variablen-Character ist.

Grüße Uwe
lupolo
lupolo 25.06.2019 um 08:32:11 Uhr
Goto Top
super, dank euch.