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 Powershell Pfad überprüfen

Mitglied: H41mSh1C0R

H41mSh1C0R (Level 3) - Jetzt verbinden

08.12.2015, aktualisiert 19:32 Uhr, 1765 Aufrufe, 11 Kommentare

Hi @ PS Profis,

01.
function Validate-Path
02.
{
03.
	[OutputType([Boolean])]
04.
	param([string]$Path)
05.
	
06.
    if ($Path -eq $null -or $Path -eq "")
07.
    {
08.
		return $false
09.
	}
10.
	
11.
    $invalidChars = [System.IO.Path]::GetInvalidPathChars();
12.

13.
    foreach ($pathChar in $Path)
14.
    {
15.
        foreach ($invalid in $invalidChars)
16.
        {
17.
            if ($pathChar -eq $invalid)
18.
            {
19.
				return $false
20.
			}
21.
        }
22.
    }
23.

24.
    return $true
25.
}
26.

27.
$btn_Hash_Click = {
28.
	$rtb_result.Clear()
29.
	
30.
	if ($tb_FolderSource.Text -gt "") {
31.
		$validate_returnSource = Validate-Path -Path $tb_FolderSource
32.
		
33.
		if ($validate_returnSource -eq $true)
34.
		{
35.
			$rtb_result.AppendText("Pfad gültig: "+$validate_returnSource)
36.
		}
37.
		else
38.
		{
39.
			$rtb_result.AppendText("Pfad nicht gültig: " + $validate_returnSource)
40.
		}		
41.
	}
42.
	else
43.
	{
44.
		$rtb_result.AppendText("Kein Text enthalten `n")
45.
	}
46.
}	
Irgendwie seh ich den Wald vor lauter Bäumen nicht. (oder es ist einfach Zeit für Feierabend)

Er geht mir IMMER in den Zweig:
01.
$rtb_result.AppendText("Pfad gültig: "+$validate_returnSource)
Die äußere if Abfrage erkennt er noch korrekt, also ob was im Textfeld drinnen steht oder nicht.
Die Innere mit der Validierung des Pfades geht immer auf $true.

;(

Gruß vom H41mSh1C0r
Mitglied: 122990
LÖSUNG 08.12.2015, aktualisiert um 19:32 Uhr
N'Abend.
Validate-Path -Path $tb_FolderSource
Fällt dir hier was auf , hier übergibst du das Objekt anstatt des Textes ....

Gruß grexit
Bitte warten ..
Mitglied: colinardo
LÖSUNG 08.12.2015, aktualisiert um 19:32 Uhr
Hallo Heim...,
zum Fehler siehe Kommentar von @Grexit...

Ich mach die Überprüfung von Pfad und Dateiangaben immer mit dieser Funktion:
01.
function Validate-Path( [parameter(Mandatory=$true)][string]$path, [parameter(Mandatory=$true)][ValidateSet('DirectoryName','FileName')]$type){
02.
    switch($type){
03.
       'Directoryname'{if ($path -match "[$(([System.IO.Path]::GetInvalidPathChars() | %{"\x"+([byte][char]$_).toString('X').PadLeft(2,"0")}) -join '')]"){return $false}else{return $true}}
04.
       'Filename'{if ($path -match "^com[1-9]|^lpt[1-9]|^con|^nul|^prn|[$(([System.IO.Path]::GetInvalidFileNameChars() | %{"\x"+([byte][char]$_).toString('X').PadLeft(2,"0")}) -join '')]"){return $false}else{return $true}}
05.
    }
06.
}
Sie hat eine Option zur Überprüfung von purem Pfad
Validate-Path 'C:\ordner' -type DirectoryName
oder einzelnem Dateinamen:
Validate-Path 'dateiname.txt' -type FileName
Vielleicht kannst du es mal gebrauchen

Grüße Uwe
Bitte warten ..
Mitglied: H41mSh1C0R
08.12.2015 um 19:29 Uhr
*katsching* =)

Das allein hat allerdings nicht gereicht. =)

01.

02.
-or (Test-path $Path) -eq $false)
03.
Die erste if Abfrage in der Validate Function noch um das obrige erweitert und dann kommt auch dann true oder false wann ich das möchte. =)

Denke das bekomm ich aber noch zusammengestutzt.(morgen) *g*

Gruß und danke dir aus dem Feierabend ^^
Bitte warten ..
Mitglied: H41mSh1C0R
08.12.2015 um 19:32 Uhr
Hallo Uwe,

auch dir danke. Ich stricke morgen am Script weiter. =)

Gruß
H41mSh1C0r
Bitte warten ..
Mitglied: 122990
08.12.2015, aktualisiert um 19:35 Uhr
Das allein hat allerdings nicht gereicht. =)
Weiß hier ja keiner was das Skript alles überprüfen / bewirken soll ... Na egal Hauptsache es hat geschnackelt
Bitte warten ..
Mitglied: H41mSh1C0R
08.12.2015 um 19:38 Uhr
Das Validate-Path was im Ausgangspost drin ist ist ohne die Anpassung immer auf true gelaufen. =)
Egal was drinnen stand.
Bitte warten ..
Mitglied: 122990
08.12.2015 um 19:47 Uhr
Ach so, ich dachte du prüfst hier nur die Pfad-"Gültigkeit" und nicht die "Verfügbarkeit". Da haben wir uns missverstanden.
Bitte warten ..
Mitglied: colinardo
08.12.2015, aktualisiert um 19:50 Uhr
Zitat von 122990:
Ach so, ich dachte du prüfst hier nur die Pfad-"Gültigkeit" und nicht die "Verfügbarkeit". Da haben wir uns missverstanden.
So dachte ich übrigens auch

Meine Funktionen oben tun auch nur das, also nur die Gültigkeit der Eingaben prüfen und nicht die tatsächliche Verfügbarkeit, das macht ja Test-Path schon.
Bitte warten ..
Mitglied: H41mSh1C0R
08.12.2015 um 19:51 Uhr
Der Gedanke war das da gleich mitzuerschlagen.
Bitte warten ..
Mitglied: colinardo
08.12.2015, aktualisiert um 19:53 Uhr
Zitat von H41mSh1C0R:

Der Gedanke war das da gleich mitzuerschlagen.
Ja klar, wenn der Pfad auf dem System unter dem aktuellen Account verfügbar ist, geht das natürlich, gäbe ja auch Situationen in denen das nicht so ist
Bitte warten ..
Mitglied: H41mSh1C0R
08.12.2015 um 19:53 Uhr
=) Das grübel ich morgen weiter.

Danke euch beiden und nun ab in den Feierabend. =) =)
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell: Variable in Pfad einbauen
gelöst Frage von ThunderbirdOPBatch & Shell2 Kommentare

Hallo Leute, ich würde gerne eine Variable in einen Pfad einsetzen, bekomme aber immer den Fehler zurück, dass der ...

Batch & Shell
Problem mit UNC-Pfad ? powershell-skript
Frage von today12Batch & Shell2 Kommentare

Hallo liebe Community, ich hab ein kleines Verständnis Problem mit UNC-Pfade. ich möchte mein Skript auf ein Netzlaufwerk legen, ...

Batch & Shell

PowerShell Add-Content Pfad mit Leerzeichen

gelöst Frage von timsen-96Batch & Shell7 Kommentare

Es funktioniert nicht, da bei "Config Files" und bei "Default Config" ein Leerzeichen ist. Kann mir jemand helfen und ...

Batch & Shell

PowerShell - Sheduled Task - Script vom UNC-Pfad

gelöst Frage von emeriksBatch & Shell3 Kommentare

Hi, ich will ein PowerShell-Script von einem UNC-Pfad starten. Wenn ich das Script mit einem Domänen-Benutzer starte, welcher lokaler ...

Neue Wissensbeiträge
Windows Installation

Windows Install ISO mit übergroßer Install.wim auf FAT32 übertragen

Tipp von Lochkartenstanzer vor 3 TagenWindows Installation11 Kommentare

Moin Kollegen, Viele von euch werden sicher aus praktischen Gründen nicht nur DVDs oder "virtuelle" CD-Laufwerke (Zalman, IODD) zum ...

Datenschutz

Gehe zurück auf Los, ziehe keine 4.000 Mark. E-Privacy (erstmal) gescheitert

Information von certifiedit.net vor 4 TagenDatenschutz

Webbrowser

Firefox 71 verfügbar mit Picture in Picture Funktion

Information von sabines vor 4 TagenWebbrowser2 Kommentare

Die neue Firefox Version 71 unterstützt, zunächst nur für Windows, Picture in Picture. Damit kann ein Video in einem ...

E-Mail
SPF beim Versenden testen
Tipp von StefanKittel vor 6 TagenE-Mail3 Kommentare

Hallo, wenn man einen SPF für einen Exchange, oder anderen Mail-Server, konfigiruert muss man das ja auch testen. Ganz ...

Heiß diskutierte Inhalte
MikroTik RouterOS
Mikrotik Router empfehlenswert?
Frage von matze2090MikroTik RouterOS16 Kommentare

Hallo, ich würde gerne mir Mikrotik anschauen. Reicht dieser Router zum erstmal Test? Er Kostet ca 23€. Ich habe ...

Windows 10
MS Edge in Win10Pro sperren
Frage von ad-minWindows 1011 Kommentare

Guten Abend, wie kann ich in Windows 10 Professional (1909) MS Edge sperren? (Standardbenutzer, nutze lokale GPO) Vielen Dank! ...

Windows Server
RDS und Lizenzierung unter Windows Server 2016
gelöst Frage von liquidbaseWindows Server11 Kommentare

Guten Morgen alle zusammen! Ich hätte da mal die ein oder andere Frage zu dem genannten Themen im Threadtitel. ...

Hyper-V
Hyper-V - VM fährt nicht sauber herunter
Frage von KodaCHHyper-V11 Kommentare

Hallo zusammen Ich habe das Problem, wenn der Hypervisor neustartet, oder wenn ich in der Hyper-V Verwaltung eine VM ...