問題
こんなbatファイルを作成したら、動きませんでした。
diff2html -v
sleep 1
git diff fca2767d0016fd3ade076c95e7dc816d0a7e1dcf -U9999 -- main.md --format= | diff2html --input stdin --style side --file diff.html -t "nantoka diff"
最後にpause
を入れても動かないので、
- git diffかdiff2htmlが悪さしてんのかなあ…
- ファイル名がまずいかな…
- 文字コードがまずいかな…(そもそもUTF-8だし日本語入ってないし試しても変化なし)
と思っていたのですが、ことはもっと単純でした。
解決
リンク先の記事では「bat内でbatを呼ぶとその後の処理が動かないよ!」と書いてありました。
これはbat内でアプリを呼んでも一緒では??? → 正解でした。
正解
そもそも余計なコマンド入れないパターン
git diff fca2767d0016fd3ade076c95e7dc816d0a7e1dcf -U9999 -- main.md --format= | diff2html --input stdin --style side --file diff.html -t "nantoka diff"
これ1行で解決してしまえば、そもそもこんな思いをする必要はありません。
callを使うパターン
- diff2thml -v
+ call diff2html -v
sleep 1
git diff fca2767d0016fd3ade076c95e7dc816d0a7e1dcf -U9999 -- main.md --format= | diff2html --input stdin --style side --file diff.html -t "nantoka diff"
余談
このコマンドでdiffを取得できるわけですが、差分の中に日本語が入っていると.ps1
(Windows PowerShell)で動きません。文字コードがうんちゃらかんちゃらでどうたらこうたらが原因っぽいですが、直すのが面倒なので諦めました。
もしやり方知ってる方がいたら教えてください。