2009-12-16 3 views
3

я просто должен был произвести длинную последовательность XML для некоторых целей тестирования, много элементов как < часа > 2009.10.30.00 </час >.генерировать текст последовательность в PowerShell

Это заставило меня бросить в Linux оболочку и просто запустить

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 

Как бы я сделать то же самое в PowerShell на окнах?

ответ

3

Довольно похоже ...

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

Добавлено Перенаправление файлов. Если вы знакомы с bash, синтаксис должен быть довольно интуитивным.

+0

Как бы перенаправить вывод в файл? – Anonym

3

Если бы я был сценаристом, я бы, вероятно, пошел с подходом orsogufo для удобочитаемости. Но если я печатаю это на консоли в интерактивном режиме, я хотел бы использовать трубопроводную подход - меньше печатать и помещается на одной строке т.д .:

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

Использование конвейера с командлетом Foreach-Object (%) более идиоматично для PowerShell, чем использование инструкции foreach. В сценарии замените «%» на «foreach», если хотите, и перейдите к нескольким строкам. –

Смежные вопросы