我有一个 Powershell 脚本,其中删除了一些 C# 代码。该代码对文件进行正则表达式搜索,如果找到匹配项,则将其写入数据表,该数据表返回给 Powershell 以进行进一步处理。在我添加 StreamWriter 写入行之前,一切正常。一旦我这样做,脚本就会完全爆炸。这是代码片段。我已经标记了破坏脚本的行。知道为什么这可能会在这里发生吗?如果我注释掉那一行,脚本就可以正常工作。
Regex reg = new Regex(regex);
using (StreamReader r = new StreamReader(SFile))
{
string revisedfile = FileName.txt
string line;
while ((line = r.ReadLine()) != null)
{
using (StreamWriter writer = new StreamWriter(revisedfile, true))
{
// Try to match each line against the Regex.
Match m = reg.Match(line);
if (m.Success)
{
DateTime result;
if (!(DateTime.TryParse(m.Groups[0].Value, out result)))
{
// add it to the DT
MatchTable.Rows.Add(x, m.Groups[0].Value, line);
// write it to the "revised" file
writer.WriteLine(reg.Replace(line, match => DateTime.Now.ToString("MM-dd-yyyy"))); // this is the line that blows it up
}