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-Key: 32497484479

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

Printed on: April 28, 2024 at 08:04 o'clock

Member: mayho33
Solution mayho33 Oct 03, 2023 updated at 16:10:11 (UTC)
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"   
Member: jsysde
jsysde Oct 03, 2023 at 17:12:44 (UTC)
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
Mitglied: 7907292512
Solution 7907292512 Oct 03, 2023 updated at 18:11:59 (UTC)
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
Member: mayho33
mayho33 Oct 03, 2023 updated at 18:38:49 (UTC)
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  
Mitglied: 7907292512
7907292512 Oct 03, 2023 updated at 18:45:01 (UTC)
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 ... 🤗
Member: pianoman82
pianoman82 Oct 06, 2023 at 08:30:48 (UTC)
Goto Top
Hat geklappt, vielen Dank für eure Hilfe!