如何使用 NAnt 更改文件中的一行?
我需要使用 NAnt 更新 .js 文件中的某一特定行。 该行将类似于:
global.ServerPath = 'http://server-path/';
我需要一种方法将该行的“服务器路径”部分更新为目标服务器的“服务器路径”部分。
ReplaceString 不好,因为当我更新它时我不知道文件中的路径是什么。
有什么帮助吗?
提前致谢
I need to use NAnt to update one specific line in a .js file.
The line will be something like:
global.ServerPath = 'http://server-path/';
I need a way to update the "server-path" part of that line with that of the destination server.
ReplaceString is no good, since I won't know what the path in the file is when I update it.
Any help?
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果
string::replace
不起作用,
可以完成这项工作。就是这样:If
string::replace
doesn't work<regex>
can do the job. This is it:在 AFTER 和 BEFORE 中不应该是 [\w\s\W]* 而不是 .* 才能捕获所有行吗?
在我的例子中 .* 仅捕获行,而 [\w\s\W]* 适用于整个文件
shouldn't it be [\w\s\W]* instead of .* in AFTER and BEFORE to be able to capture all the lines?
in my case .* was capturing only line, whereas [\w\s\W]* worked for entire file
还可以使用复制任务以及过滤器链和替换令牌过滤器。
这是一个例子:
我将所有模板文件保留在 /config/ 文件夹中(例如 web.config.template),并且在复制到相同的 /config/ 文件夹但没有“.template”文件扩展名时,我使用复制任务替换了值。然后我做之后需要做的事情...\
我承认,以您必须这样做的方式使用属性有点有点麻烦,但是您可以灵活地加载不同的集合按环境(例如本地、暂存、生产等)划分的属性值,但这比我认为您要问的要多一点。
can also use the copy task along with filterchain and replacetokens filter.
Here's an example:
I retain all my template files in a /config/ folder (e.g. web.config.template) and my use of the copy task replaces the values when copying to the same /config/ folder but without the ".template" file extension. I then do what's needed afterwards...\
I will admit that it is a bit cumbersome using properties in the way that you have to for this, but you have flexibility in that you can load different sets of property values by environment (e.g. local, staging, production, etc.) but that's a little more than I think you're asking.