В Unix мы можем поместить несколько команд в одну строку следующим образом:
$ date ; ls -l ; date
Я пробовал подобное в Windows:
> echo %TIME% ; dir ; echo %TIME
Но он напечатал время и не выполняет команду dir
.
Как я могу этого добиться?
windows
batch-file
Raghuram
источник
источник
Ответы:
Использование:
Это по памяти эквивалентно разделителю точки с
bash
запятой в и других оболочках UNIXy.Также есть
&&
(или||
), который выполняет вторую команду только в том случае, если первая была успешной (или не удалось), но единственный амперсанд&
- это то, что вы здесь ищете.Однако это, вероятно, даст вам то же время, поскольку переменные среды, как правило, оцениваются при чтении, а не при выполнении.
Вы можете обойти это, включив отложенное расширение:
Это нужно из командной строки. Если вы делаете это внутри скрипта, вы можете просто использовать
setlocal
:источник
time /t
(илиecho.|time
) вместо того,echo %time%
чтобы обойти проблему.