В терминале Windows, я могу выполнять несколько команд одновременно, т.е.
echo %time% && timeout 3 && echo %time%
Однако при выполнении вышеупомянутой команды это приведет к чему-то вроде:
9:27:57.41
0 秒待っています。続行するには何かキーを押してください ... (My operating system
is Japanese)
9:27:57.41
Как видите, echo %time%
не выполняется в другое время, хотя между ними был тайм-аут в 3 секунды.
Как бы я разделил эти два казни?
Конечной целью здесь является измерение времени, которое требуется для выполнения dir /s C:\
.
Я пробовал разные вещи, такие как:
Powershell -C "Measure-Command {cmd /c dir /s C:\ | Output-Default}" > test.txt
или от Powershell:
Measure-Command{cmd /c dir /s C:\ | Output-Default} > test.txt
Но ни одна из этих команд не приводит к тому же результату, который я получаю при запуске только dir /s C:\
в Терминале. Существуют различия во времени и количестве файлов.
Я думал, что смогу попробовать:
echo %time% >> test & dir /s C:\ >> test & echo %time% >> test
как альтернатива Measure-Command
, но это не так ...
Нечто подобное можно легко сделать в Linux, т. Е. date +%N && sleep 1 && date +%N
или date +%s && sleep 1 && date +%s
, так почему бы не всемогущий Powershell? (немного сарказма)
Любые другие альтернативы, которые я мог бы попробовать или пролить некоторый свет на то, как все это работает, помогли бы на тонну.
EDIT:
С помощью Дрю я смог сделать это с помощью метода Get-ChildItem
в Powershell. Однако, это заняло лишь часть времени, которое потребовалось бы с dir /s
. Основная цель здесь - измерить, сколько времени это займет с dir
, так что это обязательно.
EDIT2:
Похоже, что для записи стандартного вывода в терминал требовалось время, а не сама команда. Перенаправление вывода в файл или > NUL
было намного быстрее.
С уважением.