pianoman82
Goto Top

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!

Content-ID: 32497484479

Url: https://administrator.de/contentid/32497484479

Ausgedruckt am: 22.11.2024 um 06:11 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!