我正在使用此脚本替换文件中的文本(Powershell V.1)
powershell -Command "(gc 'file.jnlp') -replace 'ruta_logo','logo/logo.png'
| out-file 'file2.jnlp'"
但是,如果我想要替换多行,我该如何制作脚本?我在想这样的事情:
powershell -Command "(gc 'file.jnlp') -replace 'ruta_logo','logo/logo.png'
-replace 'ruta_xsl','logo/xsl.xsl' `
-replace 'url_msg','url+msg'`
-replace 'url_forest','url+forest'`
-replace 'nombre_entidad','Nombre'`
-replace 'url_word','Word.exe' | out-file 'file2.jnlp'"
但是没有用。所以我使用多个批处理文件来替换一行。感谢
答案 0 :(得分:1)
由于以下原因,我决定发布此批处理文件解决方案:
batch-file
标记。
@if (@CodeSection == @Batch) @then
@echo off
cscript //nologo //E:JScript "%~F0" < file.jnlp > file2.jnlp
goto :EOF
@end
// JScript section
WScript.Stdout.Write(WScript.Stdin.ReadAll().replace(
/(ruta_logo)|(ruta_xsl)|(url_msg)|(url_forest)|(nombre_entidad)|(url_word)/g,
function (o,A,B,C,D,E,F)
{return ["logo/logo.png","logo/xsl.xsl","url+msg","url+forest","Nombre","Word.exe"]
[[].concat(A,B,C,D,E,F).join().indexOf(o)] }));
作为一个额外的好处,这个解决方案应该比PowerShell运行得更快(而且恕我直言也更简单)。