none
Frage zu Codebeispiel SQL-Server RRS feed

Antworten

  • > Das Ergebnis ist offenbar, dass in der Variable $SQLServer2000 '8.0.0.0' steht

    Nicht ganz.
    Das Ergebnis ist, das sich in $SQLServer2000 ein System.Version-Objekt befindet, das sich in dieser Session nicht mehr überschreiben oder löschen lässt (Konstante).
     

    PS> New-Object -TypeName System.Version -ArgumentList '8.0.0.0' | New-Variable -Name SQLServer2000 -Scope Script -Option Constant
    
    PS> $SQLServer2000
    
    Major  Minor  Build  Revision
    -----  -----  -----  --------
    8      0      0      0
    
    
    PS> $SQLServer2000 = 0
    
    Die Variable "SQLServer2000" kann nicht überschrieben werden, da sie konstant oder schreibgeschützt ist.
    In Zeile:1 Zeichen:1
        + FullyQualifiedErrorId : VariableNotWritable
     

    Ob das mit der Konstante nötig ist, ist eine andere Frage. :)
     
    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Neu: Powershell Code Manager v5 ! Link
    (Schneller, besser + komfortabler scripten.)

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.




    Samstag, 12. November 2016 03:36
    Moderator

Alle Antworten

  • Wer weiß schon, was andere Leute so antreibt ....  Vielleicht war dem Powersheller keine andere Möglichkeit bekannt, oder er macht es eben gern auf diese Art und Weise, oder er hat es eben so gelernt und weil es funktioniert macht er es weiter so ..... So lange das Ergebnis das Erwartete ist, ist der Weg manchmal irrelevant, oder?  ;-)

    Grüße - Best regards

    PS:> (79,108,97,102|%{[char]$_})-join''

    Freitag, 11. November 2016 17:32
  • Hallo Icebear,

    so wie dir ist z.B.: nicht bekannt ist, wie man hier den Code sinnvoll und direkt nutzbar postet, denn wenn man den aus deinem Beitrag kopiert funktioniert er erst mal nicht, weil ein paar Leerzeichen fehlen.

    So wie Olaf sagt, solange das Ergebnis korrekt ist ..., optimieren kann man immer, in deinem Beitrag wäre es dann aber schon ein korrigieren. :-) Ist nicht böse gemeint. :-)

    New-Object-TypeNameSystem.Version-ArgumentList'8.0.0.0'|New-Variable-NameSQLServer2000-ScopeScript-OptionConstant

    New-Object -TypeName System.Version -ArgumentList '8.0.0.0'| New-Variable -Name SQLServer2000 -Scope Script -Option Constant
    [Version]$SQLServer2000 = '8.0.0.0'

    Und die zweite Lösung sieht auf den ersten Blick vielleicht einfacher aus, aber wenn die Variable so gebaut wird ist es keine Konstante, in der ersten schon, natürlich kann man auch eine kürzere Lösung mit der Bedingung Konstante schreiben.

    Die Frage ist halt dann auch ob die einfachere Lösung die man im Kopf hat tatsächlich das gleiche Ergebnis bringt.

    Beste Gruesse
    brima




    • Bearbeitet brima Freitag, 11. November 2016 20:56
    Freitag, 11. November 2016 20:05
  • > Das Ergebnis ist offenbar, dass in der Variable $SQLServer2000 '8.0.0.0' steht

    Nicht ganz.
    Das Ergebnis ist, das sich in $SQLServer2000 ein System.Version-Objekt befindet, das sich in dieser Session nicht mehr überschreiben oder löschen lässt (Konstante).
     

    PS> New-Object -TypeName System.Version -ArgumentList '8.0.0.0' | New-Variable -Name SQLServer2000 -Scope Script -Option Constant
    
    PS> $SQLServer2000
    
    Major  Minor  Build  Revision
    -----  -----  -----  --------
    8      0      0      0
    
    
    PS> $SQLServer2000 = 0
    
    Die Variable "SQLServer2000" kann nicht überschrieben werden, da sie konstant oder schreibgeschützt ist.
    In Zeile:1 Zeichen:1
        + FullyQualifiedErrorId : VariableNotWritable
     

    Ob das mit der Konstante nötig ist, ist eine andere Frage. :)
     
    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Neu: Powershell Code Manager v5 ! Link
    (Schneller, besser + komfortabler scripten.)

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.




    Samstag, 12. November 2016 03:36
    Moderator