Jump to content

Powershell-Befehl escapen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

 

 

 

Link zu diesem Kommentar
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. 

Link zu diesem Kommentar

@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

Link zu diesem Kommentar

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

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...