
Windows デスクトップ ショートカットの [ターゲット] フィールドに次の単一のコマンド ラインを入力すると、アドレスが ping され、タイムスタンプが設定されます。
C:\Windows\System32\bash.exe -c "ping 1.0.0.1 | while read line; do echo `date` - $line; done"
出力例:
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
私は読むここbash の代わりに wsl.exe を使用する必要があるのですが、同等のコマンドを作成する方法がわかりません。
(Windows 10でこれを行うには、Windows 10で「Windows Subsystem for Linux」を有効にし、Microsoft StoreからUbuntuをインストールする必要があります。このHTGの記事。
答え1
リンクした回答は間違っています。bash.exe
非推奨ではなく、あなたの場合は必須です。
その理由は、WSLには コマンドパラメータ、単一のコマンドのみが許可されるため、次のコマンド ラインは機能しない単一の呼び出しとして解釈されます。
組み込みのシェル コマンドを使用しても機能しません。
つまり、bash
例では コマンドを使用する必要があります。WSL に複数の Linux ディストリビューションがインストールされている場合は、bash
デフォルトとして定義されているディストリビューションのシェルが呼び出されます。
答え2
私は読むここbash の代わりに wsl.exe を使用する必要があるのですが、同等のコマンドを作成する方法がわかりません。
bash.exe -c
次のように置き換えてくださいwsl.exe --exec bash -c
:
1
C:\Windows\System32\wsl.exe --exec bash -c
"ping 1.0.0.1 | while read line; do echo `date` - $line; done"
これは、cmd.exe
ぜひお試しください!
2
出力例:
date - PING 1.0.0.1 (1.0.0.1) 56(84) bytes of data.
date - 64 bytes from 1.0.0.1: icmp_seq=1 ttl=56 time=4.58 ms
date - 64 bytes from 1.0.0.1: icmp_seq=2 ttl=56 time=4.31 ms
^C
私は数日前に読んだ本でこれを知りましたこの郵便受け。
おっしゃる通りですbash.exe
廃止されました
(havewslconfig.exe
およびlxrun.exe
)。
参考文献
1
ではwsl.exe --exec bash -c
、bash
はリナックス
コマンドとWindowsではない bash.exe
コマンド。 –に置き換えてみて 、出力がないことを経験すれば、
これは(間接的に)明らかです。bash
bash.exe
2
コマンドラインを開くには(管理者として)WinKey+を押しr、 と入力し、 +cmd
を押した まま を押します。 (次に、 + 、 + を使用してコマンドをコピーして貼り付けます。)CtrlShiftEnter
CtrlcCtrlv