1

バッチスクリプトからプログラムでp4クライアントのビューを設定できるようにしたいと思います(「p4client-o」の出力のように)。

UNIX(1行)では簡単だと思いますが[アップデート2を参照]、サードパーティのソフトウェア(grep / sedなど)をインストールしたり、C#プログラムを作成したりせずにWindowsで実行するにはどうすればよいですか(やり過ぎのようです)私がやりたいことの単純さのために)。

アップデート :

上記のコマンドは、このような設定とともにコメントを出力します。

#  View:        Lines to map depot files into the client workspace.

View: Path_to_depot Path_to_local

そのとき適用したいロジックは

For each line in output
if line.substring(0,5) equals "View:"
replace line with %newviewsetting% 

またはそれが簡単な場合

split output with space as delimiter
if the node equals "View:" and previous node not equal to #
set the next node to %myPathToDepotSetting% 

更新2:

UNIXでは、コマンドは次のようになります。

p4 client -o | sed 's/^View:.*/View: New view/' | p4 client -i

これは事実上言っています。コマンドラインにテキストを出力します。Viewで始まる行を新しいViewに置き換えます。p4に入力し直します。

4

2 に答える 2

1

あなたが何をしようとしているのか正確にはわかりません。perforce については何も知りませんが、バッチ ファイルについてはかなりの知識があります。

の出力をプログラムで処理する必要がある場合はp4 client -o、FOR /F コマンドが必要です。FOR ドキュメントは、入力するhelp forfor /?、Windows コマンド プロンプトから取得できます。

たとえば、次の例では、空白行とデフォルトの EOL 文字 ( ;) で始まる行を無視して、コマンドの出力を画面に表示するだけです。しかし、明らかにもっと多くのことができます。

for /f "delims=" %%A in ('p4 client -o') do (
  echo %%A
)

FOR コマンドは、その多くの奇抜さに対して多くの非直感的なソリューションを備えた、ちょっとした野獣です。何をする必要があるかについてより明確な説明を提供していただければ、より良いガイダンスを提供できるかもしれません.

于 2012-10-26T17:54:55.700 に答える
0

Perforce API の 1 つを使用できれば、これはかなり簡単になります。そうすれば、バッチで多くのテキスト解析を行う必要がなくなります。perl、python、ruby、または .net に慣れていますか?

于 2012-10-27T02:37:18.130 に答える