StackOverflowで提供されるこの回答 を使用して、ローカルgitリポジトリのタグをリモートサーバーのタグと再同期したかったのです。
git tag -l | xargs git tag -d
git fetch --tags
xargs
from FindUtils for Windows (私が知る限り)を含むWindowsポータブル用のgitをインストールしました。
コマンドの最初の部分を実行すると、次のようになります。
xargs:git:そのようなファイルやディレクトリはありません
コマンドを変更して実行すると、次のようになります。
git tag -l | xargs echo
それは私のためにタグを正しく「エコー」します。したがって、私の唯一の結論は、xargsは何らかの理由でパスから実行可能ファイルを解決できないということです。
Xargsに渡されたものを適切に実行させるにはどうすればよいですか(フルパスをgit.exe
に渡すことなく)
Unixツールの Gnu on Windows ポートを使用すると、これと同様の問題が発生しますが、エラーメッセージは常にInvalid argument
です。
> printf "Hello World!" | xargs printf "%s %s"
xargs: printf: Invalid argument
1つの解決策は、「ことわざ」の追加レベルの間接参照、たとえばcmd.exe
などのシェルを使用して、実際にコマンドを呼び出すことであるように思われます。
> printf "Hello World!" | xargs cmd /c printf "%s %s"
Hello World!