簡體   English   中英

如何在Windows批處理文件中檢索P4 ROOT變量值?

[英]How can I retrieve the P4 ROOT variable value in a Windows Batch file?

我想檢索p4信息中出現但不確定如何的p4 CLIENT ROOT變量。 我自己是批處理腳本的新手。 我已經看過http://answers.perforce.com/articles/KB_Article/Accessing-Perforce-Environment-Variables-From-a-Windows-Batch-File但是我將CLIENT更改為ROOT但似乎沒有上班。

編輯:我已經找到了一種方法來使該教程中的命令工作,但這違背了我想要實現的目的,因為我必須在命令行中手動設置P4ROOT。 相反,我假設我不知道根文件夾,所以我想以某種方式從p4信息中找到它。

正如Bryan所說,客戶端root和服務器根是兩個不同的東西,很清楚你想要獲得哪一個(聽起來你想要為當前客戶端獲取客戶端root;這個在客戶端規范中設置,而不是在客戶端或服務器端的任何環境變量中設置)。 但是,您可以從“p4 info”的輸出中獲取它們,並且您可以使用-F全局選項來p4以最小的方式隔離任一字段:

客戶端根:

p4 -Ztag -F %clientRoot% info

服務器根:

p4 -Ztag -F %serverRoot% info

有關-F選項的更多信息,請參見http://www.perforce.com/blog/130826/fun-formatting

您可以解析p4 set P4CLIENT的輸出以獲取客戶端名稱,然后解析p4 client clientname的輸出以獲取root。 丑陋,但功能:

@for /f "tokens=2 delims== " %c in ('p4 set P4CLIENT') do @(for /f "tokens=2" %r in ('p4 client -o %c ^| findstr /c:"Root:" ^| findstr /v #') do echo %r)

如果您在批處理文件中使用它,請將每個百分號加倍。

編輯 - 或者,更容易,現在我看一下:

for /f "tokens=3" %r in ('p4 info ^| findstr /c:"Client root:"') do echo %r

如果您在批處理文件中使用它,則再次加倍百分比。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM