guybrush 19 Geschrieben 17. November 2020 Melden Teilen Geschrieben 17. November 2020 Mahlzeit, ich plage mich nun schon seit einer guten Stunde rum, und es will mir einfach nicht gelingen, folgenden Befehl soweit zu escapen, dass ich ihn per "powershell.exe -command "xxxx" ausführen kann: Get-ChildItem "s:\some\folder\" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-7))} | Select-Object FullName, LastWriteTime, @{Name="GB";Expression={ "{0:N0}" -f ($_.Length / 1GB) }} Das Ganze soll wirklich als Einzeiler aus einer größeren Bestandsbatchdatei heraus erfolgen, ohne eine weitere Datei zu benötigen (Kundenvorgabe). Und egal, wie ichs mache, ich komm auf keinen grünen Zweig. Mehrfachquoten, Grave accent, Backslach und Kombinationen, ich werde hier nicht fündig. Vielleicht kann mir jemand von euch einen Tip geben? Danke Guybrush Zitieren Link zu diesem Kommentar
tesso 375 Geschrieben 17. November 2020 Melden Teilen Geschrieben 17. November 2020 Gerade bei mir getestet: powershell -command "Get-ChildItem 'c:\windows' -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-7))} | Select-Object FullName, LastWriteTime, @{Name='GB';Expression={ '{0:N0}' -f ($_.Length / 1GB) }}" 3 Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 17. November 2020 Melden Teilen Geschrieben 17. November 2020 In eine Datei speichern und mit "Powershell.exe -File" ausführen? Zitieren Link zu diesem Kommentar
tesso 375 Geschrieben 17. November 2020 Melden Teilen Geschrieben 17. November 2020 vor 1 Minute schrieb Dukel: Powershell.exe -File Anforderung "keine weitere Datei" Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 17. November 2020 Melden Teilen Geschrieben 17. November 2020 vor 42 Minuten schrieb guybrush: Das Ganze soll wirklich als Einzeiler aus einer größeren Bestandsbatchdatei heraus erfolgen, ohne eine weitere Datei zu benötigen (Kundenvorgabe). ..... Vielleicht kann mir jemand von euch einen Tip geben? Also mein Tipp wäre, sich mit dem Kunden zu unterhalten und zu fragen, warum diese Anforderung gestellt wurde? Eine separate Datei für das Powershell-Mini-Script kann ja auch Vorteile z.B. für die Wartbarkeit und Stabilität haben!! ... und eventuell ist der Grund für die Anforderung bei näherer Betrachtung quasi irrelevant. Zitieren Link zu diesem Kommentar
guybrush 19 Geschrieben 17. November 2020 Autor Melden Teilen Geschrieben 17. November 2020 @tesso: So einfach wärs gegangen? Einfach Apostroph statt Anführungszeichen? Und ich hab mich schon bis zum Dreifachanführungszeichen durchprobiert :) Vielen lieben Dank!! @BOfH_66: Der Kunde hat hier ein größeres Batchfile (historisch gewachsen), das er dann remote via Batchpatch auf den Zielmaschinen ausführt (wird dann auf die Remotemaschine gepusht und dann ausgeführt, was dann mit zwei Files wieder ungleich schwerer/umständlicher ist). Da wird dann allerhand gecheckt usw, wie es halt ist, und jetzt ist das auch noch dazu gekommen. Ich wollts per PS-Einzeiler machen, weil ich so die sauberste Ausgabe habe und am meisten einfach machen kann. Es wäre vielleicht auch anders gegangen, in dem Fall hats mir dann zur Anforderung auch noch keine Ruhe gelassen, dass das nicht funktionieren wollte :) Und wenn ein Einzeiler das gewünschte Ergebnis erzielt, gibts eigentlich nichts zu meckern :) Auf jeden Fall rennts, ich kann das jetzt abschließen und mit meiner Tochter spazieren gehen. Das allein rechtfertigt schon vieles :) LG und Danke an alle Guybrush Zitieren Link zu diesem Kommentar
tesso 375 Geschrieben 17. November 2020 Melden Teilen Geschrieben 17. November 2020 @guybrush Ich hatte das testweise auch noch als "encodedcommand" übergeben. Dann sieht man nicht mehr (auf den ersten Blick) was der Code tut. Zitieren Link zu diesem Kommentar
guybrush 19 Geschrieben 17. November 2020 Autor Melden Teilen Geschrieben 17. November 2020 Das hab ich auch versucht, habs dann aber aus Gründen der Übersichtlichkeit gelassen. Zitieren Link zu diesem Kommentar
NilsK 2.957 Geschrieben 17. November 2020 Melden Teilen Geschrieben 17. November 2020 Moin, Wie manche anderen Sprachen akzeptiert die Powershell sowohl einfache als auch doppelte Anführungszeichen - unter anderem deshalb, weil man bei einer Skriptsprache oft genau solche Bedingungen hat wie du. Ganz so einfach ist es in Detail dann wieder nicht, weil man nur mit doppelten Zeichen eine einfache Ersetzung von Variablen hinbekommt. Das tut der Verwendung wir hier aber selten einen Abbruch. Gruß, Nils Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.