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?

Frage Entwicklung Visual Studio

Mitglied: Marabunta

Marabunta (Level 1) - Jetzt verbinden

19.11.2014, aktualisiert 25.11.2014, 851 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
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 13 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 18 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 18 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Windows XP
Windows XP Aktivieren geht nicht
Frage von tetikmiroWindows XP13 Kommentare

Hallo Ich habe einen Windows XP mit einen vCenter Converter umgezogen auf eine ESXI. Soweit funktioniert dies auch ohne ...

Blogs
Immer wiederkehrende PHP Fehlermeldung bei Wordpress UTF-8 - ASCII
gelöst Frage von vcdweltBlogs11 Kommentare

Hi, seit einiger Zeit wird mein error_log meines Wordpress Blogs mit immer der gleichen Fehlermeldung überschwemmt. 14-Dec-2017 08:18:05 UTC ...

Switche und Hubs
Redundante L2 LWL Leitung über 2 Standorte - Spanning Tree - HP Equipment
gelöst Frage von ResolvSwitche und Hubs10 Kommentare

Hallo, ich stehe vor der Herausforderung eine Redundante L2 LWL Leitung über 2 Standorte herzustellen. Grundsätzliches Switching Know How ...