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

gelöst Dot.Net Bug?

Mitglied: Marabunta

Marabunta (Level 1) - Jetzt verbinden

19.11.2014, aktualisiert 25.11.2014, 874 Aufrufe, 2 Kommentare

Ich habe möglicherweise einen Bug gefunden, da der Befehl aus C# u.o. DotNet kommt, wollte ich fragen ob ihr den evtl. bestätigen könnt.

Mein Powershell-Skript überprüft mit diesem Befehl, ob die Dateien im Zielpfad einem bestimmten Kriterium entsprechen:
01.
$pfad="D:\Testordner\" 
02.
$Kriterien=@("*~*.ASC" , "*.*_ASC"); 
03.
foreach ($Kriterium in $Kriterien) 
04.
05.
$Dateien = @([System.IO.Directory]::GetFiles("$pfad","$Kriterium","AllDirectories")) 
06.
$Dateien  
07.
}
Jetzt der Bug:
In
D:\Testordner\
Liegen momentan 2 Dateien:
Versuchskamera.asc
Versuchs.asc

Gefunden wird die 1. Datei weil sie angeblich dem Kriterium "*~*.ASC" entspricht. Stimmt offensichtlich nicht.
Wenn man jetzt Versuchs.asc in Versuchsk.asc umbenennt, dann wird auch diese Datei gefunden.
Geht der mit ~ irgendwie seltsam um oder wie ist das möglich?
Mitglied: Dani
LÖSUNG 19.11.2014, aktualisiert 25.11.2014
Moin,
erst einmal dein Skript korrigiert. In deiner Fassung ist es nämlich nicht auffähig.
01.
[string] $strPfad = "C:\Testordner\" 
02.
 
03.
[array] $aFiles = @("") 
04.
[array] $aKriterien=@("*~*.asc", "*.*_asc") 
05.
 
06.
 
07.
foreach ($strKey in $aKriterien) { 
08.
    $aFiles = @([System.IO.Directory]::GetFiles("$strPfad", "$strKey", "AllDirectories")) 
09.
    $aFiles 
10.
}
Ich kann dein Verhalten nachstellen. Allerdings bin ich mir nicht sicher, ob die Tilde "~" als solches behandelt wird in einem String. Ich kann mir auch vorstellen, dass es ein Special Char ist.

Mit Regex kommen wir an der Stelle auch nicht weiter, da die Methode get-Files dies nicht unterstützt:
Die Suchzeichenfolge für die Überprüfung der Namen von Dateien in path auf Übereinstimmungen. Dieser Parameter kann eine Kombination von gültigen literalen Pfads und Platzhalter(* und?) Zeichen enthält (siehe Hinweise), unterstützt jedoch nicht reguläre Ausdrücke.
Ich habe es alternativ mit dem CommandLet (Get-ChildItem) versucht, aber da ist es genau das selbe Ergebnis:
01.
Get-ChildItem -Path C:\Testordner -Filter *~*.asc | ft Fullname
Wenn ich es mit dem Parameter -Include versuche siehts besser aus:
01.
Get-ChildItem -Path C:\Testordner\* -Include *~*.asc, *.*_asc | ft FullName
Seltsam...


Gruß,
Dani
Bitte warten ..
Mitglied: colinardo
LÖSUNG 20.11.2014, aktualisiert 25.11.2014
Hallo zusammen,
die Tilde ist hier tatsächlich etwas speziell, da sie ein Teil eines Pfades spezifizieren kann, z.B. wechselt man ja so in das Desktopverzeichnis seines Useraccounts
cd ~\Desktop
Bei Verwendung von Get-Childitem in Kombination mit -Filter werden die Filtermöglichkeiten des Dateisystems genutzt deswegen kommt es hier vermutlich zu diesem Effekt. Bei Verwendung von -Include (Dani's letzte Zeile) ist das anders, hier Filtern die Erweiterungen der Powershell die Ausgabe von Get-Childitem. Es wird also quasi das Komplette Verzeichnis erst eingelesen und dann gefiltert durch -Include ausgegeben. Deswegen ist auch die Verwendung von -Include um ein vielfaches langsamer als die nativen Filterfunktionen des CMDLets mit -Filter.

Also nutze die letze Zeile von Dani mit dem zusätzlichen Parameter -recurse oder mach es für deine beiden Muster so kombiniert mit dem Dateisystemfilter
01.
Get-ChildItem 'C:\Testordner\*[~.]*[._]ASC' -Recurse
Zur Info damit es keine Missverständnisse gibt: die Zeile durchsucht auch Unterordner nach dem Muster.

Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Bibliotheken & Toolkits
Dot.Net Zugriff auf Freigabe
gelöst Frage von leutiBibliotheken & Toolkits5 Kommentare

Ich habe eine fremde Anwendung getestet, welche über Dot.Net-Programmierung unter Windows neue TASKs erstellen soll bzw. die vorhandenen auslesen. ...

Windows 10

Keine Rechte oder Bugs nach einer automatischen Reperatur

Frage von GeomaxWindows 101 Kommentar

Hallo liebe User! Ich habe ein großes Problem, denn mein Windows lässt sich so gut wie nicht mehr bedienen. ...

Administrator.de Feedback

Sammelthread für Bugs in der Formatierung

Frage von 114757Administrator.de Feedback10 Kommentare

Hallo Kollegen, liebe Forumsnutzer, damit wir die manchmal etwas nervigen Fehler der Formatierungsanweisungen los werden habe ich diesen Thread ...

Administrator.de Feedback

Bug beim Antwortcounter?

gelöst Frage von SheogorathAdministrator.de Feedback6 Kommentare

Moin, es ist mir bereits heute Nacht aufgefallen, aber ich dachte im ersten Moment, dass da vielleicht einfach irgendwas ...

Neue Wissensbeiträge
Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 13 MinutenAdministrator.de Feedback2 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 17 StundenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 1 TagGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 1 TagSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Heiß diskutierte Inhalte
Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware17 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...