2011-11-11 60 views
2

GnuWin32がインストールされているので、SVNからリビジョン番号を取得し、そのリビジョン番号をファイルに書き込むためにlinuxコマンドでバッチファイルを作成しようとしています。現在、私は持っている:svnからリビジョン番号を取得するバッチスクリプト

svn info | grep -i "Revision" | cut -d" " -f2 | tr -d '\n'>> %~dp0../../Include/Version.hpp 

しかしそのコマンドは常に私のSVNのリビジョン番号を与えるが、訓練の新しい行が続きますが、これ私に与えて、次の:私は私の問題を作ったと思っている

// Version.hpp 
"some revision #" << followed by a '\n' 
    << a new line is here 

明らかです。誰もがなぜコマンドがバッチファイルから実行され、コンソールで直接実行されていないときにこれが起こるのか知っていますか?ファイルにリビジョン番号を書き込むときに、linuxコマンドで訓練の新しい行が追加されないように、これを修正するにはどうすればよいですか?

ありがとうございました。

+0

興味深い問題です。おそらく役に立たないかもしれませんが、私はbash 3を使ってMacでこれを試しました。ファイルに追加する前に 'tr -d '\ n"をパイプラインの最後に追加するテクニックは、シェルスクリプトで実行します。あなたはGnuWin32の問題を発見したかもしれません。私はそれがSVNと関係がないとは思わない。最初に単純なテキストで問題を再現できるかどうかを確認してください。 –

答えて

0

奇妙な...後続の改行がリダイレクトの形になっている可能性があります。

echo -n $(svn info | grep -i "Revision" | cut -d" " -f2 | tr -d '\n') >> %~dp0../../Include/Version.hpp 

しかし、私のLinuxステーションで試してみましたが、両方のソリューションがうまく動作します!ネイティブのLinuxシステムを使用してください:-p!

+0

何もうまくいきません:(私は "cut"コマンドの問題を追跡することができました。あなたは、コンソールの入出力を操作する方法を知っていますか? – czchlong