Szukam odpowiednika wiersza poleceń wsl.exe
Poniższy pojedynczy wiersz polecenia w polu docelowym skrótu pulpitu systemu Windows spowoduje wysłanie polecenia ping na adres i oznaczenie go datą.
C:\Windows\System32\bash.exe -c "ping 1.0.0.1 | while read line; do echo `date` - $line; done"
Przykładowe dane wyjściowe:
Fri Nov 27 14:08:05 CST 2020 - PING 1.0.0.1 (1.0.0.1) 56(84) bytes of data.
Fri Nov 27 14:08:05 CST 2020 - 64 bytes from 1.0.0.1: icmp_seq=1 ttl=58 time=26.7 ms
Fri Nov 27 14:08:06 CST 2020 - 64 bytes from 1.0.0.1: icmp_seq=2 ttl=58 time=35.5 ms
Fri Nov 27 14:08:07 CST 2020 - 64 bytes from 1.0.0.1: icmp_seq=3 ttl=58 time=42.0 ms
Czytałem tutaj, że zamiast bash powinien być używany wsl.exe, ale nie mogę dowiedzieć się, jak utworzyć równoważne polecenie.
(Aby zrobić to w systemie Windows 10, musisz włączyć „Podsystem Windows dla systemu Linux” w systemie Windows 10 i zainstalować Ubuntu ze sklepu Microsoft Store zgodnie z tym artykułem HTG ).
Odpowiedzi
Podana przez Ciebie odpowiedź jest nieprawidłowa: bash.exe
nie została wycofana, aw Twoim przypadku jest nawet obowiązkowa.
Powodem jest to, że chociaż WSL ma parametr polecenia , zezwala tylko na jedno polecenie, więc zinterpretuje następującą linię poleceń jako pojedyncze wywołanie, które nie zadziała:

Próba użycia wbudowanych poleceń powłoki również nie zadziała:

Krótko mówiąc, jesteś zmuszony użyć bash
polecenia na swoim przykładzie. Jeśli masz więcej niż jedną dystrybucję Linuksa zainstalowaną w WSL, bash
wywoła powłokę dystrybucji, która jest zdefiniowana jako domyślna.