Запуск команды-спящий режим -миллисекунд 50

#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 ""
}
 

Это отвечает на ваш вопрос?