none
Powershell: count-Eigenschaft im Script nicht erkannt RRS feed

  • Frage

  • Moin Forum!

    Ich habe ein Script, das unter anderem eine SQL-Datenbank austauschen soll. Manuell in der Powershell funktioniert das auch, lasse ich es als Script laufen, wird die count-Eigenschaft nicht gefunden:

    (100 Zeilen tolle Sachen, Variablen gefüllt...)
    if (Verzweigung Level 1) {
        $sf_DBPfadTmp = "$sf_Dir\Unterordner"
        if ((Get-ChildItem "$sf_DBPfadTmp\*.* -Include *.bak).count = 1) {
            Tu was!
        }
    }

    Von Hand ausgeführt ist tutti bene, im Script meckert er "Die Eigenschaft "count" wurde für dieses Objekt nicht gefunden. Vergewissern Sie sich, dass die Eigenschaft vorhanden ist und festgelegt werden kann."

    Beim manuellen Ausführen habe ich die if-Verzweigungen nicht dabei, da mache ich das einzeln. Kann es sein, dass so etwas in Verzweigungen oder mit den doppelten Klammern ein Problem ist? Hat da jemand einen liebevollen Klaps auf den Hinterkopf für mich?

    Das "Tu was" darf nur ausgeführt werden, wenn es genau eine *.bak-Datei gibt. Gibt es vielleicht eine andere sinnvolle Art, die Anzahl von Dateien zu zählen?

    Grüße aus dem Norden

    Jörg


    Ich will die Welt verbessern und bei mir fang' ich an. Deal? der Joerg

    Montag, 9. März 2020 16:17

Antworten

Alle Antworten

  • Vergleich heißt -eq, nicht =.

    Evgenij Smirnov

    http://evgenij.smirnov.de

    Montag, 9. März 2020 16:23
  • if ((Get-ChildItem "$sf_DBPfadTmp\*.bak").count -eq 1)

    Das "=" Zeichen ist eine Zuweisung und count ist keine Eigenschaft für eine Zuweisung (readonly).
    Das -include kannst du dir ja schenken, da du den pfad direkt korrekt angeben kannst.
    Außerdem vermisse ich das abschließende Anführungszeichen.

    Montag, 9. März 2020 17:11
  •  @ Evgenij Smirnov und Der Suchende:

    Jetzt, wo Ihr es sagt... Schade, nicht aufgepasst beim Kopieren. Ärgerlich, dass es in Powershell selbst funktioniert hat, das war in diesem Fall eher verwirrend. Mit -eq funktioniert es natürlich auch im Script.

    Danke dafür!

    @ Der Suchende: Ich habe mir zum ersten Mal ein Script gebaut, in dem ich bewusst count verwende. Ich übe gerade ;-) 

    Danke auch hier für den Tipp!

    Das fehlende Anführungszeichen ist beim Übertragen untergegangen, im Script ist es vorhanden.

    Danke Euch!

    Der Jörg


    Ich will die Welt verbessern und bei mir fang' ich an. Deal? der Joerg

    Dienstag, 10. März 2020 09:31