2016-01-22 74 views
0

我在下面的情況是:我使用ant某些salesforce files遷移到其他銷售團隊環境。商業用戶也發展Salesforce這就是爲什麼有時他們使用名稱中的特殊字符。我有一個名爲Contracts_Product__c-Contract%27s Option Layout.layout (Mind the %27 in it)的文件。這是如何將這個文件傳遞給我的,所以我對此沒有任何影響。螞蟻副本不能解釋%2527

現在的地方在我的劇本,我需要將這個文件複製到另一個位置,所以我用下面的命令:

<copy file="${svn.sources}/${object-test}" tofile="${release.sources}/${object-test}"/>

對象的試驗性質的內容是/home/../layouts/Contracts_Product__c-Contract%2527s%20Option%20Layout.layout,通常是完全文件名,我需要(%2527 decodes to %27)但螞蟻抱怨他找不到該文件。

有關如何解決此問題而不更改源文件名的任何提示?

+0

請查看是否在[鏈接](http://www.bleepingcomputer.com/forums/t/502495/url-encoding-and-decoding-question/)的任何幫幫我。 – Rao

回答

0

我自己找到了解決方案。在將路徑傳遞給ant-copy命令之前,通過添加一些javascript來解碼路徑,ant接受它併成功複製文件,包括輸出文件名中的%27。

代碼需要:

<script language="javascript"> 
    <![CDATA[ 
     var urltodecode = project.getProperty("object");              
     var decodedurl = decodeURIComponent(urltodecode); 

     // Set a new property which could be retrieved by the ant script 
     project.setProperty("objectDecoded", decodedurl); 
    ]]> 
</script>