我一直在尝试通过创建批处理脚本来自动编辑webpack的index.ts文件,如下所示:
ren index.html index.txt
findstr /v 'inline.bundle.js /html' index.txt > index.html
del index.txt
@echo '<script type="text/javascript" src="main.bundle.js"></script></body></html>' >> index.html
但是,运行批处理文件将产生此输出:
PS C:\Users\x> .\batch.bat
C:\Users\x>ren index.html index.txt
C:\Users\x>findstr /v 'inline.bundle.js /html' index.txt 1>index.html
FINDSTR: Cannot open /html'
C:\Users\x>del index.txt
< was unexpected at this time.
C:\Users\x>@echo '<script type="text/javascript" src="main.bundle.js"></script></body></html>' >> index.html
PS C:\Users\x>
请注意,cmd添加了&#39; 1&#39;到&#39;&gt;&#39;第2行中的字符,以及&#39;&lt;&#39;在第3行之后没有任何理由输入字符。我已检查过编码及其ANSI,因此它不是编码问题。
此外,将这些行逐个粘贴到cmd或PowerShell中可以很好地完成工作。运行批处理文件时出现问题。有什么想法吗?
修改
以下是我文件的最后两行:(换行符猜测无法通过评论确定)
<script type="text/javascript" src="inline.bundle.js"></script><script type="text/javascript" src="scripts.bundle.js"></script><script type="text/javascript" src="vendor.bundle.js"></script><script type="text/javascript" src="main.bundle.js"></script></body>
</html>
我希望它只保留with main.bundle.js,但由于findstr / v(显然)只能按行工作,我已采用上述解决方法删除最后两行并附加正确的回来了。
答案 0 :(得分:0)
试试这个:
n
答案 1 :(得分:0)
这里有两个问题。首先,cmd认为`/ html'是要搜索的文件名。在搜索字符串周围使用QUOTATION MARK。
其次,findstr
将搜索多个字符串,除非您使用/C:
。
findstr /v /C:"inline.bundle.js /html" index.txt > index.html
对于echo
行,它也可以使用QUOTATION MARK,但这会将QUOTATION MARK字符放入输出中。为避免这种情况,需要转义重定向符号。
@echo ^<script type="text/javascript" src="main.bundle.js"^>^</script^>^</body^>^</html^> >index.html