#powershell #directory #sleep
#powershell #каталог #сон
Вопрос:
Воспроизведение чужого сценария (я ничего не знаю) есть ли способ применить этот режим ожидания к такой команде, как «dir»? Цель: отобразить вывод DIR в виде эффекта пишущей машинки.
$string = "The quick brown fox jumped over the lazy dog."
$string -split '' |
ForEach-Object{
Write-Host $_ -nonew
Start-Sleep -milliseconds 50
}
Ответ №1:
Похоже, вам нужен весь вывод, а не только путь к файлу или имена. Я предлагаю две версии одной и той же концепции
Несколько циклов foreach
Get-ChildItem * | Out-String -Stream | ForEach-Object {
[environment]::NewLine
$_.trimend().tochararray()| ForEach-Object{
Write-Host $_ -NoNewline
Start-Sleep -milliseconds 25
}
}
Использование инструкции switch
Switch (Get-ChildItem * | Out-String -Stream)
{
default {"`n"; $_.trimend().tochararray()|
ForEach-Object{
Write-Host $_ -NoNewline
Start-Sleep -milliseconds 25
}
}
}
Комментарии:
1. Большое вам всем спасибо. Хотел бы я лучше понять этот материал: ( Я гораздо проще понимал ПАКЕТНЫЕ сценарии, но даже там я был очень простым.
Ответ №2:
Get-Item * | ForEach-Object { Write-Output $_; Start-Sleep -milliseconds 50 }
Реализация с помощью dir (Get-Item в Powershell)
Возьмите каждую строку из выходных данных ($ _), подождите 50 миллисекунд и распечатайте строку.
Ответ №3:
Изменен ваш скрипт.
При этом каждая буква будет распечатана отдельно.
[string[]]$strings = (Get-ChildItem).FullName
$strings | foreach {
$_ -split '' |
ForEach-Object{
Write-Host $_ -nonew
Start-Sleep -milliseconds 1
}
Write-Host ""
}
Это отвечает на ваш вопрос?