
Ich werde versuchen, es so kurz wie möglich zu machen.
Ich verwende PowerShell 7.2.0 und kann den where-object
Befehl oder seine Aliase nicht where
zum ?
Laufen bringen.
Ich möchte dieselbe Funktionalität wie mit dem where
Befehl in CMD.
Ich habe den Befehl und seine Aliase ausprobiert, aber keiner von ihnen gibt etwas zurück. Ich habe bestätigt, dass sie bereits da sind (es müssen keine Aliase gesetzt werden) mit dem get-alias
Befehl.
Wie kann ich das beheben?
Antwort1
Das Äquivalent inPower ShellIstUntergeordnetes Element abrufen.
Ohne Parameter entspricht es dir
in cmd.
PS C:\...\DummyDesktop>gci
Directory: C:\Users\keith\DummyDesktop
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 10/30/2021 3:51 AM 11 logs.txt
-a---- 11/14/2021 11:07 PM 4833 Regex Whitespace Mode.txt
-a---- 11/9/2021 4:51 AM 1011 troubleshooting updates.txt
-a---- 11/9/2021 2:55 AM 143 Update Error Troubleshooting.url
- Wenn kein Pfad angegeben ist, wird der aktuelle Standort verwendet.
- Um Unterverzeichnisse des aktuellen Standorts oder des angegebenen Pfads einzuschließen, verwenden Sie den Parameter
-REcurse
(-s
). - Viele einfache Suchvorgänge können durch die Verwendung der verschiedenen Parameter
Get-ChildItem
mit Literalen und/oder Platzhaltern durchgeführt werden. - Bei komplizierteren Suchvorgängen ist möglicherweise eine Weiterleitung der Ergebnisse
GetChildItem
an erforderlichWhere-Object
. - Da Sie den vollqualifizierten Pfad benötigen, benötigen Sie die
FullName
Eigenschaft des von zurückgegebenen FileInfo-Objektsgci
.
PS C:\...\Documents>gci ventra*
Directory: C:\Users\keith\Documents
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 3/2/2016 12:02 PM 27 Ventra.txt
-a---- 4/5/2021 11:13 PM 181 Ventra.zip
PS C:\...\Documents>(gci ventra*).FullName
C:\Users\keith\Documents\Ventra.txt
C:\Users\keith\Documents\Ventra.zip
Die Beispiele, die Sie genannt haben, würden etwa so aussehen:
(gci pyton* -Recurse).FullName
- Ausgeführt vom Stammverzeichnis oder einem Ordner, der als Vorgänger des Speicherorts von
python.exe
- Wenn Sie vom Stammverzeichnis Ihres Systemlaufwerks aus suchen, möchten Sie höchstwahrscheinlich den Parameter
-ErrorAction SilentlyContinue
(-ea silent
) verwenden, umAccess denied
Fehler zu unterdrücken.
Antwort2
Mit der folgenden Funktion konnte ich die gleiche Funktionalität wie where
in erreichen cmd
:
function which ($command) {
Get-Command -Name $command -ErrorAction SilentlyContinue |
Select-Object -ExpandProperty Path -ErrorAction SilentlyContinue
}
Antwort3
Sie können das where
von CMD verwendete Dienstprogramm verwenden (z. B. where.exe python
).