2010-04-27 4 views

Répondre

1

Transforme là-bas est un moyen d'y parvenir si les variables sont affectées scriptblocks (mon cas):

&{ 
    $h_one = { "one" } 
    $h_two = { "two" } 
    $h_three = { "three" } 
    $h_four = { "four" } 

    $byStartLines= @{} 
    get-variable -name "h_*" -scope local | % { $byStartlines[($_.value.startposition.startline)] = $_ } 
    $order = ([int[]] $byStartLines.keys) | sort 
    $order | %{ $byStartLines[$_].name } 
} 

Les choses deviennent plus compliquées si vous déclarez plusieurs blocs de scrips dans une ligne, mais c'est l'essentiel.

0

Je pense que la réponse sera non, avec une mise en garde. Parce qu'il n'y a rien dans l'entrée variable:name (obtenir ceci avec dir variable:name) qui indique quand $name a été créé. La mise en garde serait un hôte PSH personnalisé pourrait être en mesure de faire quelque chose, en examinant les pipelines dans l'espace d'exécution avant l'exécution (mais cela nécessiterait probablement l'écriture de votre propre analyseur, et probablement ne traiterait pas invoke-expression).

(Une meilleure réponse est peut-être possible, si vous expliquez pourquoi vous le souhaitez.)

+0

Je définis des tests dans des scriptsblocs et j'aimerais les exécuter dans l'ordre. – guillermooo

+4

Vous pouvez placer les tests dans un tableau. Ensuite, la commande serait garantie. –

+0

Hm ... Oui, semble être la chose évidente à faire. – guillermooo

Questions connexes