我已經簽出perforce客戶端上的幾個文件。 我可以通過'p4打開'命令獲取這些文件的列表 它給出的形式//depot/...像 我想知道如何將其轉換爲本地路徑上的路徑(我的意思是客戶端路徑) ,這樣我可以創建一個批處理文件來備份那些就在一天結束前 由於事先 烏代Perforce保存已打開文件的本地副本
回答
您可以使用p4 where
將depot filespecs轉換爲本地文件規格。
要解析的p4 where
從Windows批處理文件的輸出,像下面這樣可以幫助:
for /f "tokens=3" %%i in ('p4 where %my_depot_filespec%') do echo %%i
注意,for循環的身體可以執行不止一次更加複雜的映射,比如如p4 where
文檔中所述。如果你需要處理這些,你可能需要做更復雜的解析。
有一點需要記住的是,p4在哪裏只會報告文件的位置。它不檢查它是否存在。 – 2009-03-04 06:18:57
@Jonathon:好點。即使存在於軟件倉庫中,也可能不會同步到客戶端。 – bk1e 2009-03-04 06:23:56
檢查P4的客戶,因爲你已經定義//庫映射到你的文件系統路徑。用//取代depot來獲取文件的本地路徑,以便備份。
我不知道如何在批處理文件中編程。
p4 where filename
這是您正在查找的命令。
它將列出本地文件系統上文件的軟件倉庫路徑,客戶端路徑和絕對路徑。只需將輸出管道輸入到cut
並選擇絕對路徑並將其複製。
該OP提到使用一批暗含Windows的文件。剪切命令可能不可用。 – 2009-03-04 18:27:11
你也可以考慮爲什麼你覺得有必要在每天使用Perforce本身結束時備份文件。
您可能會發現,在每天結束時使用開發分支並提交更改(在「重新打開編輯」標誌時)實際上會更容易和更好。首先,您將使用Perforce跟蹤您的更改,而不是您自己的手動系統。
使用開發分支意味着你可以做這些簽入而不會讓你的同事搞亂。
只是一個值得考慮的建議,就是這樣。
根據我的經驗,在perforce之外在本地維護自己的交互式備份比嘗試維護分支更快,也更不危險。 – justinhj 2009-05-14 16:18:53
從待變更表繼BAT腳本副本Perforce的打開的文件
(%1個命令行參數)
P4打開-c%1>開%的1.txt
爲/ F「令牌= 1 delims =#「%% i IN(open-%1.txt)do call:add-to-zip %% i
:add-to-zip
for/F」tokens = 3「%% j IN ('p4 where%1')做zip [zip-file-name] %% j
謝謝了:-)只是搜索命令,它可以給我打開文件的客戶端路徑與備份文件相同的原因。不只是我得到的命令,但腳本太:-)
此批處理腳本可以將文件壓縮到單個更改列表。
for /F "tokens=1,5,6 delims=# " %%a IN ('p4 opened') do for /F "tokens=3" %%j IN ('p4 where %%a') do zip %%b%%c %%j
它會創建文件是這樣的:
change571620.zip
change673450.zip
change723098.zip
defaultchange.zip
此批處理腳本可以zip文件安裝到單個更改列表。
for/F「tokens = 1,5,6 delims =#」%% a IN('p4 opened')do for/F「tokens = 3」%% j IN('p4 where %% a')做拉鍊%% b %% c^%%Ĵ
它會創建文件是這樣的:
change571620.zip
change673450.zip
change723098.zip
defaultchange.zip
僅供參考,如v2012/2013,您最好使用Perforce的擱置功能進行日常備份操作。您團隊中的其他用戶也可以訪問這些貨架。以這種方式使用它進行備份可以防止您的歷史記錄受到您不太關心的中間文件變體(或其中部分文件不適合簽入)的污染。
- 1. 驗證Perforce客戶端文件副本
- 2. 保存文本區域條目的本地副本
- 3. 讓已經存在的工作區的副本Perforce中
- 4. Xpages-創建保存的文檔的新副本,打開它,但不保存
- 5. 打開本地HTML文件
- 6. 本地文件打開IE
- 7. 保存到本地Flex Web應用程序後打開文件
- 8. OWL API存儲通過url打開的本體的本地副本
- 9. 通過matlab保存文本文件的副本
- 10. 在本地保存文件
- 11. 安卓:打開本地地圖文件
- 12. 如何讓本地HTML將文本保存到本地文件?
- 13. Eclipse問題不斷打開舊版本/文件副本
- 14. Perforce:保持Perforce不改變文本文件格式
- 15. 將文本保存到已創建的文本文件
- 16. 如何在富文本框中保存打開的文件
- 17. 打開本地的HTML文件
- 18. 打開本地的PDF文件在Chrome
- 19. saveHTML()保存2個副本
- 20. 解析本地保存的XML文件
- 21. Tkinter未打開並保存文本文件
- 22. 錯誤打開文本文件保存在python
- 23. 使用XMLHttpRequest和javascript打開,編輯和保存文本文件
- 24. HTML5/JavaScript的:打開文本文件,加載到文本區域/保存textarea的內容到文本文件
- 25. Android的副本文件不工作的本地SQLite文件
- 26. spreadsheetgear - 打開/保存文件
- 27. QTAgent32保存文件打開
- 28. 在Groovy中打開本地文件
- 29. 使用AIR/Flex打開本地文件
- 30. 在Webkit .NET中打開本地文件
你可能想檢查這個問題:http://stackoverflow.com/questions/300692/how-to-convert-perforce-depot-locations-to-client-view-locations – 2009-03-04 06:22:54