次のようにパイプでfindコマンドに文字列を渡した場合に、なぜか「No such file or directory」が返ってくる場合がある。
dotnet tool list -g | find "dotnet-script" >NUL
↓
find: 'dotnet-script': No such file or directory
Azure Pipelinesのscript TaskをWindowsエージェントで実行した場合にこの問題が起きた。
パスが通る場所にbashのfind.exeがあるビルドエージェントを使用すると、この問題が発生する場合がある。パスが通っているとそちらのfindが呼ばれてしまうため、この問題が発生するようだ。
例えば、git for Windowsをコマンドプロンプトから呼べるようにパスを通してインストールすると発生する。
この場合、「%WinDir%\System32\find」のようにWindowsのfindコマンドをフルパス指定することで、この問題を回避できる。
dotnet tool list -g | %WinDir%\System32\find "dotnet-script" >NUL