Гость
Форумы / Windows [игнор отключен] [закрыт для гостей] / Вопрос к знатокам cmd / 21 сообщений из 21, страница 1 из 1
03.03.2021, 12:30
    #40050238
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к знатокам cmd
Мне нужно запустить несколько задач в bat-файле в фоновом режиме.
Когда-то давно я делал такой bat-файл и он работал:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
@echo off

verify other 2>nul
setlocal enableextensions
if ERRORLEVEL 1 (
	echo failed
	goto :EOF
)

...

call :tool_ping 8.8.8.8 &
call :tool_trace 8.8.8.8 &

goto :EOF

:tool_ping
setlocal
set _host=%1
ping -f -l 1400 -n 20 %_host% > "%TS%\ping.txt"
set _res=
endlocal & set _result=%_res%
exit /B

:tool_trace
setlocal
set _host=%1
tracert -d %_host% > "%TS%\trace.txt"
set _res=
endlocal & set _result=%_res%
exit /B

Он и сейчас работает, но теперь пинг и трассировка выполняются не параллельно, а последовательно.
...
Рейтинг: 0 / 0
03.03.2021, 12:45
    #40050250
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к знатокам cmd
start добавь, он по умолчанию не дожидается завершения
Код: powershell
1.
2.
start call :tool_ping 8.8.8.8 &
call :tool_trace 8.8.8.8 &
...
Рейтинг: 0 / 0
03.03.2021, 13:28
    #40050280
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к знатокам cmd
Dima T
start добавь, он по умолчанию не дожидается завершения
Код: powershell
1.
2.
start call :tool_ping 8.8.8.8 &
call :tool_trace 8.8.8.8 &

Start запускает программу - а call ни разу не программа. Так что
Код: sql
1.
start cmd /c ping -f -l 1400 -n 20 %_host% > "%TS%\ping.txt"
...
Рейтинг: 0 / 0
03.03.2021, 15:05
    #40050346
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к знатокам cmd
Тогда уж:
Код: plaintext
1.
start /b ping ... > протокол
start /b tracert ... > ещё.протокол
...
Рейтинг: 0 / 0
03.03.2021, 15:56
    #40050378
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к знатокам cmd
start по ряду причин не подходит.

Странно, раньше ведь & работал.
...
Рейтинг: 0 / 0
03.03.2021, 19:03
    #40050423
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к знатокам cmd
& - запуск в фоновом режиме для POSIX -шелл.
Вы точно никакими WSL-ями "раньше" не баловались?
...
Рейтинг: 0 / 0
03.03.2021, 19:33
    #40050433
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к знатокам cmd
Alibek B.
Странно, раньше ведь & работал.
В батч-процессинге одиночный амперсанд - это запустить вторую команду/программу после возврата управления от первой. И не более.
...
Рейтинг: 0 / 0
03.03.2021, 20:29
    #40050449
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к знатокам cmd
Akina
В батч-процессинге одиночный амперсанд - это запустить вторую команду/программу после возврата управления от первой. И не более.

нет
...
Рейтинг: 0 / 0
03.03.2021, 21:45
    #40050472
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к знатокам cmd
fkthat
нет
А если поподробнее?
...
Рейтинг: 0 / 0
03.03.2021, 22:26
    #40050486
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к знатокам cmd
Akina
fkthat
нет
А если поподробнее?

https://www.gnu.org/software/bash/manual/bash.html#ListsIf a command is terminated by the control operator ‘&’, the shell executes the command asynchronously
in a subshell. This is known as executing the command in the background, and these are referred to as
asynchronous commands. The shell does not wait for the command to finish, and the return status is 0
(true). When job control is not active (see Job Control), the standard input for asynchronous commands,
in the absence of any explicit redirections, is redirected from /dev/null.
...
Рейтинг: 0 / 0
03.03.2021, 23:23
    #40050494
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к знатокам cmd
Basil A. Sidorov
Вы точно никакими WSL-ями "раньше" не баловались?

Нет, но видимо действительно использовал какой-то нестандартный шелл.
...
Рейтинг: 0 / 0
04.03.2021, 08:28
    #40050532
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к знатокам cmd
fkthat, а вы точно про виндовый cmd?

P.S.
Да, это риторический вопрос.
...
Рейтинг: 0 / 0
04.03.2021, 08:51
    #40050536
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к знатокам cmd
fkthat , то ли я дурак, то ли в вопросе обсуждается строго .CMD процессинг - то бишь чисто Windows. При чём тут, я извиняюсь, Bash?
...
Рейтинг: 0 / 0
04.03.2021, 09:33
    #40050541
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к знатокам cmd
Akina
fkthat , то ли я дурак, то ли в вопросе обсуждается строго .CMD процессинг - то бишь чисто Windows. При чём тут, я извиняюсь, Bash?

Akina
В батч-процессинге одиночный амперсанд - это запустить вторую команду/программу после возврата управления от первой. И не более.

Я просто и не понял, что речь про какашку мамонта cmd.exe
...
Рейтинг: 0 / 0
05.03.2021, 20:02
    #40051189
volodin661
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к знатокам cmd
автор"В батч-процессинге одиночный амперсанд - это запустить вторую команду/программу после возврата управления от первой. И не более."


строго говоря (а говорить в наше непростое время надо исключительно строго), термин 'батч-процессинг' относится не только к интерпретатору cmd.exe
( и да, fkthat, это, действительно, потрясающее изделие от софтверной компании с многомиллиардными оборотами )
...
Рейтинг: 0 / 0
05.03.2021, 20:09
    #40051192
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к знатокам cmd
volodin661
строго говоря (а говорить в наше непростое время надо исключительно строго), термин 'батч-процессинг' относится не только к интерпретатору cmd.exe
Ну тогда, при строгом следовании наименованию и контексту вопроса, он относится ещё к command.com и к командным процессорам третьей стороны - но во всех случаях строго под Windows. А потому - в случае command.com без разницы, а поведение необозначенного программного обеспечения непредсказуемо и не может рассматриваться как возможный контекст.
...
Рейтинг: 0 / 0
05.03.2021, 20:19
    #40051196
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к знатокам cmd
Akina
поведение необозначенного программного обеспечения непредсказуемо и не может рассматриваться как возможный контекст.

Поведение Windows PowerShell (еще того, который "строго под Windows") может рассматриваться как возможный контекст?
...
Рейтинг: 0 / 0
05.03.2021, 21:35
    #40051217
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к знатокам cmd
да без базара
Код: plaintext
1.
2.
3.
PS C:\Users\admin$> ping -n 100 localhost &
Использование амперсанда (&) не допускается. Оператор & зарезервирован для буду
щих версий; используйте вариант, обрамленный кавычками ("&"), чтобы передать ам
персанд в виде строки.
...
Рейтинг: 0 / 0
05.03.2021, 23:20
    #40051239
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к знатокам cmd
Basil A. Sidorov
да без базара
Код: plaintext
1.
2.
3.
PS C:\Users\admin$> ping -n 100 localhost &
Использование амперсанда (&) не допускается. Оператор & зарезервирован для буду
щих версий; используйте вариант, обрамленный кавычками ("&"), чтобы передать ам
персанд в виде строки.

Ну да. В "старом" PS ни одиночный ни двойной амперсанд не работают вообще. А в "новом" сделали "как в баше" - одиночный запускает в бекграунде, двойной - последовательность команд (с логическим "и" на успешность выполнения - каждая последующая в цепочке запускается только если предыдущая выполнена успешно). Ни о каком авторВ батч-процессинге одиночный амперсанд - это запустить вторую команду/программу после возврата управления от первой речи нет.
...
Рейтинг: 0 / 0
06.03.2021, 10:38
    #40051289
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к знатокам cmd
Есть.
Просто потому, что cmd никуда не делся и, лично мне, вся эта "типапродвиность" МощнойОболочки никуда не впилась.
...
Рейтинг: 0 / 0
06.03.2021, 12:32
    #40051294
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос к знатокам cmd
fkthat
Поведение Windows PowerShell (еще того, который "строго под Windows") может рассматриваться как возможный контекст?
По-моему, нет. Во-первых, явная ссылка на .BAT и CMD. Во-вторых, программный текст из исходного поста - по нему PS следует воспринимать скорее как то самое "третьей фирмы".
...
Рейтинг: 0 / 0
Форумы / Windows [игнор отключен] [закрыт для гостей] / Вопрос к знатокам cmd / 21 сообщений из 21, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]