2009-12-16 6 views
3

Je devais produire une longue séquence xml dans un but de test, beaucoup d'éléments comme <heure> 2009.10.30.00 </heure >.générer séquence de texte dans powershell

Cela m'a fait tomber dans un shell linux et lancez simplement

for day in $(seq -w 1 30) ; do 
    for hour in $(seq -w 0 23) ; 
    do echo "<hour>2009.10.$day.$hour</hour>" ; 
    done ; 
done >out 

Comment puis-je faire la même chose dans Powershell sur les fenêtres?

Répondre

3

assez similaire ...

$(foreach ($day in 1..30) { 
    foreach ($hour in 0..23) { 
     "<hour>2009.10.$day.$hour</hour>" 
    } 
}) > tmp.txt 

redirection de fichier ajouté. Si vous êtes familier avec bash, la syntaxe devrait être assez intuitive.

+0

Comment pourrais-je rediriger cette sortie vers un fichier? – Anonym

3

Si j'écrivais des scripts, j'irais probablement avec l'approche d'orsogufo pour la lisibilité. Mais si je tape cela à la console interactive j'utiliser une approche de pipeline - moins de frappe et il s'intègre sur une seule ligne .: par exemple

1..30 | %{$day=$_;0..23} | %{"<hour>2009.10.$day.$_</hour>"} > tmp.txt 
+0

L'utilisation d'un pipeline avec l'applet de commande Foreach-Object (%) est plus idiomatique de PowerShell que l'utilisation d'une instruction 'foreach'. Dans un script, remplacez le '%' par 'foreach' si vous le souhaitez, et entrez dans plusieurs lignes. –

Questions connexes