Linuxではこれを行うことが可能です:
git diff $(git status -s -b | sed -n '2p' | cut -d' ' -f2-)
またはより単純なケース
ls $(pwd)
問題は、Windowsで同じようにするにはどうすればよいですか? (バッチファイルを使用せず、コマンドプロンプトの1つのライナー)。すべてのコマンドがパイピングをサポートしているわけではないので、どのようにして1つを評価し、結果をパラメーターとして別のパラメーターに渡すことができますか?
パイピングと<
と>
を試してみましたが、何も動作しません。
git diff < (git status -s -b | sed -n '2p' | cut -d' ' -f2-)
ファイルを期待していることを自分で試してください。また、|
はgit diff
がサポートしていないため、どちらも機能しません。
git status -s -b | sed -n '2p' | cut -d' ' -f2- | git diff // results in illegal seek
cmd
には$
演算子はありません。
リダイレクト演算子(<
、>
、>>
)は、ファイルまたはストリームハンドルを予期します。
パイプ|
は、コマンドの標準出力を別のコマンドの標準入力に渡します。
A for /F
loop は、コマンドの出力をキャプチャして変数参照(例では%A
)で提供できます。次のコードを参照してください。
for /F "usebackq delims=" %A in (`git status -s -b ^| sed -n '2p' ^| cut -d' ' -f2-`) do git diff %A