如何使用javascript替换位于本地的文件中的值?

问题描述

我有一个场景,在读取文件后,它需要替换该文件中的值。

我们的脚本来自我们的 JMeter,我们的脚本来自于该脚本。 (请参考下方代码

def file = new File('C:/Peak2020/China/${__time(YMMdd)}-085644-336_000101-plant 8956.xml')
def newConfig = file.text.replace('596791365558876095','000101')
file.text = newConfig
def newConfig2 = file.text.replace('C6D-CN-NBB2829A','C7D-CN-NBB$4568792B')
file.text = newConfig2
def sku = file.text.replace('323094-01','45903-01')
file.text = sku

我尝试在 neoload 中使用 replace() 执行此操作,但它不起作用。它确实将文件从源文件夹复制到目标文件夹,但值未更改。 (请参考下方代码

var file = new java.io.BufferedReader(new java.io.FileReader("C:\\Peak2020\\China\\testSource1.xml"));

var line = file.readLine();
var id = line.replace(new RegExp("596791365558876095","12345678"),"");
var destFile = line;

var writer = new java.io.FileWriter("C:\\Peak2020\\Teemp\\TestDestination3.xml",true);
writer.write(destFile);
writer.close();

有谁知道使用什么正确的 javascript 代码?谢谢。

解决方法

字符串在 Javascript 和 Java 中是不可变的

var id = line.replace(new RegExp("596791365558876095","12345678"),"");

但随后您再次使用 var 行 作为新变量。

var destFile = line;

应该是

var destFile = id;

因为替换将返回一个带有替换值的新字符串。