pianoman82

Powershellabfrage für Dummies

Hallo!

Ich bin offensichtlich zu doof eine Abfrage in ein Powershellskript einzubauen.

Wenn ich die Abfrage
%userprofile%\AppData\Roaming\Microsoft\Signatures
im Explorer aufrufe komme ich genau dort hin wo ich möchte, wenn ich jedoch über Powershell die Abfrage

Get-ChildItem -Path "%userprofile%\AppData\Roaming\Microsoft\Signatures"  
absetze bekomme ich als Ergebnis immer den Pfad vorne drangehängt aus dem Ordner aus dem der Befehl ausgeführt wird.

Was mache ich falsch?

Danke und einen schönen Restfeiertag!
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 32497484479

Url: https://administrator.de/forum/powershellabfrage-fuer-dummies-32497484479.html

Ausgedruckt am: 05.05.2025 um 22:05 Uhr

mayho33
Lösung mayho33 03.10.2023 aktualisiert um 18:10:11 Uhr
Goto Top
Hi,
Schau dir doch bitte mal die $env: -Variablen an.

Bsp:
$env:APPDATA
$env:LOCALAPPDATA
$env:ComSpec
...
...
PS funktioniert einfach ein wenig anders.

in deinem Fall brauchst du:
Get-ChildItem -Path "$($env:APPDATA)\Microsoft\Signatures"   
jsysde
jsysde 03.10.2023 um 19:12:44 Uhr
Goto Top
Moin.
Zitat von @pianoman82:
[...]im Explorer aufrufe[...]
In der Adresszeile des Explorers führst du ja auch keinen PowerShell-Aufruf aus. Sondern öffnest nur den Dateipfad, sofern denn die Variablen stimmen. face-wink

Ansonsten, siehe @mayho33.

Cheers,
jsysde
7907292512
Lösung 7907292512 03.10.2023 aktualisiert um 20:11:59 Uhr
Goto Top
Zitat von @mayho33:
in deinem Fall brauchst du:
Get-ChildItem -Path "$($env:APPDATA)\Microsoft\Signatures"   
Die Subexpression wäre hier sogar überflüssig, es geht also auch ohne
Get-ChildItem -Path "$env:APPDATA\Microsoft\Signatures" -File  
tio.run

Auflisten der verfügbaren Umgebungs-Variablen mittels
Get-ChildItem env:

Gruß sid
mayho33
mayho33 03.10.2023 aktualisiert um 20:38:49 Uhr
Goto Top
Zitat von @7907292512:

Die Subexpression wäre hier sogar überflüssig, es geht also auch ohne
Get-ChildItem -Path "$env:APPDATA\Microsoft\Signatures" -File  
Natürlich gehts auch ohne. Will man aber vorab mal vermeiden, dass PS die Autovervollständigung anwendet und den Pfad gleich auflöst mit Eingabe eines \ (Backslash), verwendet man eben den Kunstgriff der Subexpression 😉

EDIT:
Und noch als Tipp fall du, @pianoman82, doch lieber mit der klassischen Notation von SystemVariablen spielst und die Wichtigkeit oder Unwichtigkeit einer Subexpression siehst (Dot.Net):
Get-ChildItem -Path "$([System.Environment]::ExpandEnvironmentVariables("%APPDATA%"))\microsoft\signatures" -File  
7907292512
7907292512 03.10.2023 aktualisiert um 20:45:01 Uhr
Goto Top
Oder eben
"${env:APPDATA}\microsoft\signatures"  
Falls doch mal gültige Variablenzeichen im String folgen und man ohne extra Subexpression arbeiten möchte.

1001 Wege nach Rom wie man so schön sagt ... 🤗
pianoman82
pianoman82 06.10.2023 um 10:30:48 Uhr
Goto Top
Hat geklappt, vielen Dank für eure Hilfe!