Test-Path gibt $ True für eine vorhandene Datei nicht zurück

8

Ich versuche die Existenz einer Datei zu validieren, aber das Problem ist, dass der Dateiname Klammern im Namen hat, zB c: \ test [R] 10005404, Failed with Kommentare, [S] SiteName.txt.

Ich habe versucht, die Methode .replace ohne Erfolg zu verwenden.

%Vor%

Versucht

%Vor%

Ideen würden sehr geschätzt werden. Danke, ChrisM

    
user991721 13.04.2012, 17:50
quelle

2 Antworten

21

Versuchen Sie es mit dem Parameter -LiteralPath:

%Vor%

Eckige Klammern haben eine besondere Bedeutung.

Es ist eigentlich eine POSIX-Funktion, damit Sie dies tun können:

%Vor%

Damit erhalten Sie alle Dinge im aktuellen Verzeichnis, die mit den Buchstaben A bis F beginnen. Bash hat die gleiche Funktion.

    
Andy Arismendi 13.04.2012 18:17
quelle
5

Es gibt mindestens drei Möglichkeiten, um es zum Laufen zu bringen.

Wenn Sie etwas Ähnliches verwenden, müssen Sie bei Verwendung von Anführungszeichen zwei Backticks hinzufügen, da ein einzelner Backtick als Escapezeichen ausgewertet wird, bevor er an die Methode Replace gesendet wird.

%Vor%

Die Verwendung von einfachen Anführungszeichen in der Methode Replace verhindert auch, dass die Backticks entfernt werden.

%Vor%

Schließlich können Sie den Parameter LiteralPath verwenden, der keine Platzhalter verwendet (die eckigen Klammern werden von PowerShell-Übereinstimmungen verwendet, um eine Reihe von Zeichen zu definieren, die angepasst werden können).

%Vor%     
Rynant 13.04.2012 18:20
quelle