Variablen in Powershell
Moin Moin,
Ich komme mir etwas... vor.
Ich will ein Powershell script marginal anpassen.
Und zwar wirklich nur Namensvariablen erstellen und die entsprechend einsetzen.
Onkel Duck und Tante Google waren auch keine echte Hilfe.
Es ist wahrscheinlich in irgendwelchen Grundanleitungen drinnen, die Ich aber nicht habe
In Batch..
Trivial.
Hier will es nicht.
Ich bin gekommen zu:
Der Ansatz sollte eigentlich selbsterklärend sein.
Ich habe einen Ordner TMP-Data in den Ich immer ermittelte Daten in einer TXT oder CSV speichere. sortiert nach Erstellzeit und PC Name.
In Batch kein Problem für mich.
Aber hier scheitere Ich daran die Variablen aufzurufen.
Ich hatte herausgelesen das sie ohne Sonderzeichen (also Nicht %xx%) aufgerufen werden sollen.
Das es zu beachtende Aspekte gibt mit einfachen und doppelten Anführungszeichen habe Ich auch gelesen, ist ja in Batch auch.
Konkret geht es um 2 Arten der Nutzung der obigen Variablen:
1.
2.
Aufruf der Datei
Nehme Ich eine gekürzte Version in Klartext statt Variable,
c:\TMP-DATA\$env:computername.<Skript-Name>.txt
Funktioniert der Rest einwandfrei.
Kann mir einer einen kleinen entsprechenden Klaps geben?
Danke
Ich komme mir etwas... vor.
Ich will ein Powershell script marginal anpassen.
Und zwar wirklich nur Namensvariablen erstellen und die entsprechend einsetzen.
Onkel Duck und Tante Google waren auch keine echte Hilfe.
Es ist wahrscheinlich in irgendwelchen Grundanleitungen drinnen, die Ich aber nicht habe
In Batch..
Trivial.
Hier will es nicht.
Ich bin gekommen zu:
$Env:SpeicherPfad="c:\TMP-DATA"
$Env:ErgebnisDatei=SpeicherPfad\([datetime]::UtcNow).tostring("yyyy-MM-dd__HHmm").$env:computername.<Skript-Name>.txt
if (!(Test-Path SpeicherPfad)) {md SpeicherPfad}
Der Ansatz sollte eigentlich selbsterklärend sein.
Ich habe einen Ordner TMP-Data in den Ich immer ermittelte Daten in einer TXT oder CSV speichere. sortiert nach Erstellzeit und PC Name.
In Batch kein Problem für mich.
Aber hier scheitere Ich daran die Variablen aufzurufen.
Ich hatte herausgelesen das sie ohne Sonderzeichen (also Nicht %xx%) aufgerufen werden sollen.
Das es zu beachtende Aspekte gibt mit einfachen und doppelten Anführungszeichen habe Ich auch gelesen, ist ja in Batch auch.
Konkret geht es um 2 Arten der Nutzung der obigen Variablen:
1.
Write-Output xxxx | Out-file ErgebnisDatei
Aufruf der Datei
ErgebnisDatei
Nehme Ich eine gekürzte Version in Klartext statt Variable,
c:\TMP-DATA\$env:computername.<Skript-Name>.txt
Funktioniert der Rest einwandfrei.
Kann mir einer einen kleinen entsprechenden Klaps geben?
Danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1695189073
Url: https://administrator.de/contentid/1695189073
Ausgedruckt am: 23.11.2024 um 08:11 Uhr
3 Kommentare
Neuester Kommentar
Da stimmt so einiges nicht... Variablen benutzt man mit Dollarzeichen vor dem Namen, das nur so nebenbei.
Grundlagen
about_Variables
Powershell Leitfaden für Anfänger
Zur Info: Das Anlegen von $env:Variable übersteht das Schließen der Shell nicht (falls du das damit erreichen wolltest, wenn man wirklich permanente Umgebungsvariaben erstellen will macht man das mit der [System.Environment]::SetEnvironmentVariable() Methode.
https://docs.microsoft.com/de-de/dotnet/api/system.environment.setenviro ...
Grundlagen
about_Variables
Powershell Leitfaden für Anfänger
$speicherpfad = "c:\TMP-DATA"
if (!(Test-Path $speicherpfad)) {md $speicherpfad -Force | out-null}
$ergebnis = "$speicherpfad\$([datetime]::UtcNow.tostring("yyyy-MM-dd__HHmm")).$env:computername.BlaBlub.txt"
$ergebnis
Zur Info: Das Anlegen von $env:Variable übersteht das Schließen der Shell nicht (falls du das damit erreichen wolltest, wenn man wirklich permanente Umgebungsvariaben erstellen will macht man das mit der [System.Environment]::SetEnvironmentVariable() Methode.
https://docs.microsoft.com/de-de/dotnet/api/system.environment.setenviro ...
Außerdem wäre es ziemlich widersinnig System- oder Benutzervariablen zu setzen um auf diese dann im weiteren Verlauf wieder zuzugreifen. In aller Regel werden Variablen nur innerhalb des Script benutzt und benötigt. Ihr Inhalt ist i.d.R. nach Ende des Scripts obsolet.
In wenigen Fällen macht es Sinn den Inhalt einer Variablen dauerhaft für den Benutzer oder das System in Umgebungsvariablen zu schreiben.
Manuel
In wenigen Fällen macht es Sinn den Inhalt einer Variablen dauerhaft für den Benutzer oder das System in Umgebungsvariablen zu schreiben.
Manuel