我有两个网页,一个页面是手工创建的,另一个是用 Visual Studio 2010 (.aspx) 发布的。我想修改这些文件的内容,用一个脚本标签替换一堆脚本标签。为了实现这个目标,我只需从批处理文件中运行一些 Perl 代码。这是替换前后的 Perl 代码和 HTML:
Perl 批处理:
perl -pi.backup -e "s/<!--\s*<pack>\s*-->.*?<!--\s*<\/pack>\s*-->/<script src=\"pack.js\"><\/script>/s" file.aspx
HTML 输入:
<!-- <pack> -->
<script src="file1.js" type="text/javascript"></script>
<script src="file2.js" type="text/javascript"></script>
<!-- </pack> -->
HTML 输出:
<script src="pack.js"></script>
对于手工创建的文件,一切正常,而生成的文件不会更新,除非所有行都集中在一起。我猜这个问题来自换行符,但我不知道为什么它只对第一个文件有效,因为代码完全相同。