Top-Themen

Aktuelle Themen (A bis Z)

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

Frage Entwicklung Batch & Shell

GELÖST

Powershell Ordner auslesen

Mitglied: calzoni83

calzoni83 (Level 1) - Jetzt verbinden

22.01.2013, aktualisiert 01.02.2013, 10436 Aufrufe, 8 Kommentare

Hallo erstmal,

ich bin anfänger im Bereich Powershell scripting und bräuchte hilfe für ein Powershell Script.

Ich habe mehrere Ordner, wo auch mehrere Unterordner existieren. Ich brauche von jedem Ordner ein bestimmten Unterordner der ausgelesen werden soll.

Beispiel
Ordner1 -> xml Ordner (nur den Ordner XML brauche ich)
-> x Ordner
-> y Ordner
-> z Ordner

Ordner2 -> xml Ordner (nur den Ordner XML brauche ich)
-> x Ordner
-> y Ordner
-> z Ordner

Ein Script habe ich soweit, nur das Problem ist, das das Script alle Unterordner ausliest.

Vielen dank

gruß calzoni
Mitglied: 106543
22.01.2013, aktualisiert um 10:43 Uhr
Hi

01.
if not $ORDNERNAME = "XML" then goto [nächten Ordner auslesen] else write-host $ORDNERNAME
Grüße
Exzellius
Bitte warten ..
Mitglied: calzoni83
22.01.2013, aktualisiert um 11:05 Uhr
danke für die schnelle Antwort.
Ich verstehe das leider nicht ganz. Ich habe so 1500 Ordner (wo jeder Ordner ein Unterordner namens xml hat und diesen brauche ich nur), woher weis er wo die Ordner liegen??? Muss ich da den $Path angeben oder wie funktioniert das???

Hier ist mein Script und wo füge ich die Bedingung ein ???

Set-StrictMode -Version "2.0"
Clear-Host

#RootPath
$Path = "C:\Users\lc\Documents\test"
$Folders = (Get-ChildItem $path)
$myfolders = Foreach($Folder in $Folders){
If($Folder.PSIsContainer -eq $True){
New-Object -TypeName Psobject -Property @{
Name = $Folder.FullName
#CountFiles = ((gci $Folder.Fullname -recurse | Where {$_.PSIsContainer -eq $False}) |Measure-Object).Count
}
}
}

#Ausgabe1
#$myFolders | sort SumFiles -descending | ForEach{
  1. "{0} {1:0.00} MB {2}" -f $($_.name),$($_.size),$($_.Sumfiles)
#}

#Ausgabe2
$myFolders | sort Name | ft -auto

#Ausgabe3 (csv-File)
$myFolders | sort SumFiles -descending | export-csv "C:\Users\LC\Documents\test1.csv" -delimiter ";"

dank nochmals

gruß calzoni
Bitte warten ..
Mitglied: 106543
22.01.2013 um 11:16 Uhr
Hi calzoni,

1. deine Fragezeichentaste scheint kaputt zu sein
2. hier im Forum (eig. in jedem Forum) gibt es sogenannte Code-Tags
siehe:
Mit < code >Quellcode< /code > kann ein beliebiger Quellcode in richtiger Formatierung (Abstände, Einrückungen usw.) angezeigt werden.

3. zu deinem Problem, ich meine, dass in der Varibale $Folder dein aktuell ausgelesener Ordner drinsteht von daher:
01.
Set-StrictMode -Version "2.0" 
02.
Clear-Host 
03.
 
04.
#RootPath 
05.
$Path = "C:\Users\lc\Documents\test" 
06.
$Folders = (Get-ChildItem $path) 
07.
$myfolders = Foreach($Folder in $Folders){ 
08.
If($Folder.PSIsContainer -eq $True){ 
09.
 
10.
if not $Folder = "XML" then goto Sprungmarke 
11.
 
12.
New-Object -TypeName Psobject -Property @{ 
13.
Name = $Folder.FullName 
14.
#CountFiles = ((gci $Folder.Fullname -recurse | Where {$_.PSIsContainer -eq $False}) |Measure-Object).Count 
15.
16.
:Sprungmarke 
17.
18.
19.
 
20.
#Ausgabe1 
21.
#$myFolders | sort SumFiles -descending | ForEach{ 
22.
 
23.
1."{0} {1:0.00} MB {2}" -f $($_.name),$($_.size),$($_.Sumfiles) 
24.
#} 
25.
 
26.
#Ausgabe2 
27.
$myFolders | sort Name | ft -auto 
28.
 
29.
#Ausgabe3 (csv-File) 
30.
$myFolders | sort SumFiles -descending | export-csv "C:\Users\LC\Documents\test1.csv" -delimiter ";"
alles ungetestet, da ich grade keine Powershel-Konsole da hab

Grüße
Exzellius
Bitte warten ..
Mitglied: calzoni83
22.01.2013 um 11:37 Uhr
Hi,
Der Pfad weg ist ja C:\Users\lc\Documents\test, dort liegen die ganzen Ordner (Ordner1, Ordner2, Ordner3) drinne und von denen die Unterordner namens XML sollen ausgelesen werden.
So wie ich das verstehe schaut er doch nach den XML Ordner nur unter C:\Users\lc\Documents\test oder?

danke nochmals für die Hilfe

gruß Calzoni
Bitte warten ..
Mitglied: 106543
22.01.2013 um 11:46 Uhr
Hi,

soweit richtig er sucht in diesem Pfad und geht alle Ordner durch.
Wenn er jetzt einen Ordner findet der NICHT XML heißt, dann springt er ans Ende der Schleife und nimmt sich den nächsten Ordner. Wenn er einen Ordner findet, der XML heißt, dann führt er deinen ganzen Quellcode aus.

Grüße
Exzellius
Bitte warten ..
Mitglied: calzoni83
23.01.2013 um 08:07 Uhr
Guten Morgen,

Ich komme damit leider nicht weiter

Set-StrictMode -Version "2.0"
Clear-Host

#RootPath
$Path = "C:\Users\lc\Documents\test"
$Folders = (Get-ChildItem $path)
$myfolders = Foreach($Folder in $Folders){
If($Folder.PSIsContainer -eq $True){

if not $Folder = "xml" then goto Sprungmarke

New-Object -TypeName Psobject -Property @{
Name = $Folder.FullName
CountFiles = ((gci $Folder.Fullname -recurse | Where {$_.PSIsContainer -eq $False}) |Measure-Object).Count
}
}
:Sprungmarke
}
}
#Ausgabe1
#$myFolders | sort SumFiles -descending | ForEach{
  1. "{0} {1:0.00} MB {2}" -f $($_.name),$($_.size),$($_.Sumfiles)
#}

#Ausgabe2
$myFolders | sort Name | ft -auto

#Ausgabe3 (csv-File)
$myFolders | sort SumFiles -descending | export-csv "C:\Users\lc\Documents\test0.csv" -delimiter ";"

Ich bekomme immer diesen fehler

Fehlende "(" nach "if" in der if-Anweisung.
Bei C:\Users\lc\Documents\Ordner auslese script.ps1:10 Zeichen:6

if <<<< not $Folder = "xml" then goto Sprungmarke

+ CategoryInfo : ParserError: (OpenParenToken:TokenId) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingEndParenthesisInIfStatement

Kann das sein, das ich nicht in eine IF schleife noch ein If einsetzen kann?

danke
gruß calzoni
Bitte warten ..
Mitglied: 106543
23.01.2013 um 08:15 Uhr
Hi calzoni,

doch geht ;) allerdings ist es schon ne Weile her, dass ich mit Powershell gearbeitet hab und von daher können Fehler schonmal passieren.
also
1) ich hab keine Ahnung, wie zum Teufel nochmal ne if-Selektion in Powershell ging, muss mich da iwo verschrieben haben
2) goto Sprungmarke war eher eine Verzweiflungstat, weil ich garnicht weiß ,wie Sprungmarken in Powershell verwendet werden und das soweiso schlechter Stil ist
3) verwendest du bitte Code-Tags wie oben beschrieben ?
4) hier ein neuer Versuch, probiers mal bitte aus:
01.
Set-StrictMode -Version "2.0" 
02.
Clear-Host 
03.
 
04.
#RootPath 
05.
$Path = "C:\Users\lc\Documents\test" 
06.
$Folders = (Get-ChildItem $path) 
07.
$myfolders = Foreach($Folder in $Folders){ 
08.
If($Folder.PSIsContainer -eq $True){ 
09.
 
10.
if not ($Folder = "XML"){ 
11.
goto Sprungmarke 
12.
13.
 
14.
New-Object -TypeName Psobject -Property @{ 
15.
Name = $Folder.FullName 
16.
#CountFiles = ((gci $Folder.Fullname -recurse | Where {$_.PSIsContainer -eq $False}) |Measure-Object).Count 
17.
18.
:Sprungmarke 
19.
20.
21.
 
22.
#Ausgabe1 
23.
#$myFolders | sort SumFiles -descending | ForEach{ 
24.
 
25.
1."{0} {1:0.00} MB {2}" -f $($_.name),$($_.size),$($_.Sumfiles) 
26.
#} 
27.
 
28.
#Ausgabe2 
29.
$myFolders | sort Name | ft -auto 
30.
 
31.
#Ausgabe3 (csv-File) 
32.
$myFolders | sort SumFiles -descending | export-csv "C:\Users\LC\Documents\test1.csv" -delimiter ";"
Viel Glück und freundliche Grüße
Exzellius
Bitte warten ..
Mitglied: calzoni83
01.02.2013 um 08:42 Uhr
hi,

ich habe es hinbekommen, habe einfach ein Filter gesetzt. Vielen dank nochmals für die Hilfe.

gruß calzoni
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
PowerShell: Fileserver ACLs auslesen
gelöst Frage von itsmetimBatch & Shell2 Kommentare

Hallo zusammen, ich habe mir ein kleines Script gebaut, um ACLs von Ordnern und deren Unterordnern auszulesen. Get-ChildItem \\Pfad\Freigabe ...

Batch & Shell
Powershell INI Tags auslesen
gelöst Frage von H41mSh1C0RBatch & Shell2 Kommentare

Hi@All, Vorgabe INI. Aus dem File will ich die Namen der Bereiche auslesen und in einen String packen mit ...

Batch & Shell
Problem Auslesen einer Internetseite mit Powershell
gelöst Frage von c20082005Batch & Shell11 Kommentare

Hallo zusammen, ich brauche eure Hilfe. Ich habe ein Powershell-Skript erstellt, mit dem ich eine Internetseite auslese, nachdem ich ...

Entwicklung
Powershell IP und Hostname auslesen
gelöst Frage von LyonADEntwicklung3 Kommentare

Guten Tag zusammen, Ich habe zwei Fragen welche um die Auslesung von IP Adressen handeln: 1 Frage: IP & ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 StundenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 21 StundenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 21 StundenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 22 StundenSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von 92943Windows 1031 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
gelöst Frage von Windows10GegnerNetzwerkgrundlagen21 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...

Sicherheit
Meltdown und Spectre: Die machen uns alle was vor
Information von FrankSicherheit18 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Netzwerke
Packet loss bei "InternetLeitungsvollauslastung"
gelöst Frage von Freak-On-SiliconNetzwerke17 Kommentare

Servus; Ja der Titel klingt komisch, is aber so. Wenn die Internetleitung voll ausgelastet ist, hab ich extreme packet ...