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>