2

コードを含むbatファイルがあります:

echo Hello There > Result.txt
@exit 0

ファイルは、プロジェクト ルートにある「batch」という名前のフォルダーにあります。

ビルド後のイベントで次のコードを使用して呼び出しています。

call "$(ProjectDir)batch\post.bat"

@exit 0 を使用しているのは、そうしないとエラーコード 1 が返されるためです (これは、コマンドが成功しなかったことを示していると思います)。

batファイルをダブルクリックするか、cmdから呼び出すと、ファイルが作成されます。この作業を行うために何をする必要がありますか

編集: 皆さん、ファイルが ASCII エンコーディングであることを確認してください。デフォルトでエンコーディングをUTFに設定するVSで私のものを作成しました。

4

2 に答える 2

4

最初のパラメーターとして $(ProjectDir) マクロを受け取るようにバッチ ファイルを変更し、PostBuild イベントを変更してこのマクロを渡すようにします。

ポストバット

echo Hello There > %1%Result.txt
@exit 0

PostBuild イベント

call "$(ProjectDir)batch\post.bat" $(ProjectDir)batch\

ビルド後のイベントが実行可能ファイルの現在の出力ディレクトリ (通常は BIN\DEBUG または RELEASE) 内で実行されるため、前のコマンドは失敗します。上記の例で、リダイレクトを含む dir コマンドを result.txt に追加することで、これを簡単に確認できます。

于 2013-05-29T20:34:56.783 に答える
0

バッチ ファイルが実行されているため、ファイルのプロジェクト ディレクトリを確認してください。現在のディレクトリは $(ProjectDir) であり、バッチ ディレクトリにはありません。

于 2013-05-29T20:28:58.583 に答える