W systemie Unix możemy umieścić wiele poleceń w jednej linii, na przykład:
$ date ; ls -l ; date
Próbowałem podobnej rzeczy w systemie Windows:
> echo %TIME% ; dir ; echo %TIME
Ale wypisuje godzinę i nie wykonuje polecenia dir
.
Jak mogę to osiągnąć?
windows
batch-file
Raghuram
źródło
źródło
Odpowiedzi:
Posługiwać się:
Jest to, z pamięci, odpowiednik separatora średnika w
bash
i innych powłokach UNIXy.Istnieje również
&&
(lub||
), który wykonuje drugie polecenie tylko wtedy, gdy pierwsze powiedzie się (lub nie powiodło się), ale pojedynczy znak ampersand&
jest tym, czego tutaj szukasz.Prawdopodobnie da ci to ten sam czas, ponieważ zmienne środowiskowe są zwykle oceniane podczas odczytu, a nie wykonywania.
Możesz to obejść, włączając opóźnioną ekspansję:
Jest to potrzebne z wiersza poleceń. Jeśli robisz to wewnątrz skryptu, możesz po prostu użyć
setlocal
:źródło
time /t
(lubecho.|time
) zamiastecho %time%
ominąć problem.