我有一个包含大量.resx文件的解决方案。它们中的许多都有一个特定的元素,我想在每个resx中删除该元素或者批量替换它。
解决方案是在TFS 2010中,因此首选使用Visual Studio来完成工作,这样它也会检出文件,我可以创建shelvesets / do checkins而无需手动检查我需要的文件。 / p>
我可以使用的VS版本是VS2010,VS2012和VS2013(我听说他们的查找/替换功能在每个版本中都有所不同)。
E.g。 foo.resx内容有这个:
<data name="SomeName">
<value>SomeValue</Value>
</data>
<data name="SomeOther1">
<value>SomeValue</Value>
</data>
<data name="SomeOther2">
<value>SomeValue</Value>
</data>
我想要删除名称为&#34; SomeName&#34;的所有数据实例。并离开:
<data name="SomeOther1">
<value>SomeValue</Value>
</data>
<data name="SomeOther2">
<value>SomeValue</Value>
</data>
这可能吗?正则表达式?否则?
答案 0 :(得分:1)
在Notepad ++中,您可以使用(ctrl + h,正则表达式搜索模式):
<data name="SomeName">\r\n.*\r\n<\/data>\r\n
由于VS所谓的“正则表达式”是一场噩梦,我再也不会回答这类问题了。但是你要去VS 2010:
:b*\<data name="SomeName"\>\n:b*.*\n:b*.*data\>
这不太好。
答案 1 :(得分:0)
我使用的完整解决方案如下:
1)使用TF.exe cmdline签出resx文件(其中本地路径是您要搜索的根目录)
tf checkout /recursive *.resx
2)然后使用此正则表达式字符串在Notepad ++中使用find / replace删除该属性:
\r\n..<data name=\"SomeValue\"*\>.*?</data>
3)然后撤消未使用TFS Power Toys更改的resx:
tfpt uu . /noget /recursive
完成。