小编Ste*_*eve的帖子

删除带有特殊字符的文件

我想从构建服务器中清除日志文件,保留最近几天。我的进程创建的日志文件没有问题。这工作正常:

$logFolders = Get-ChildItem $buildBase -Recurse -include logs -Attributes D
$logFolders | ForEach-Object { Get-ChildItem $_.fullname -filter *.log | where >{$_.lastwritetime -lt (get-date).adddays(-$purgeAfter) -and -not $_.psiscontainer} |% {remove-item $_.fullname -force} };
Run Code Online (Sandbox Code Playgroud)

但是,构建工具生成的日志如下所示:

lrFR_WebHelp - Friday, February 28, 2014 [9.00 PM].mclog
Run Code Online (Sandbox Code Playgroud)

我试过引用文件名:

Get-ChildItem $frReports\Reports -filter *.mclog | where {$_.lastwritetime -lt (get-date).adddays(-$purgeAfter) -and -not $_.psiscontainer}| % {write-host ("'" + $frReports + '\Reports'  + '\' + $_ + "'") }
Run Code Online (Sandbox Code Playgroud)

输出:

'D:\scratch\Reports\lrFR_WebHelp - Friday, February 28, 2014 [9.00 PM].mclog'
Run Code Online (Sandbox Code Playgroud)

但试图删除:

Get-ChildItem $frReports\Reports -filter …
Run Code Online (Sandbox Code Playgroud)

powershell file-io filenames special-characters

4
推荐指数
1
解决办法
3106
查看次数

NotePad ++正则表达式,用于删除包含嵌入标记的HTML标记

使用Notepad ++,技术作家部门需要<span class..>xxx</span> 从这样的文本中删除标记:

`<span class="temp">See</span> Problems pane <span class="temp">for more <b>information</b>.</span>`
Run Code Online (Sandbox Code Playgroud)

(澄清:)期望的结果是没有span标签的元素的内部文本.以上示例的输出将是:

 `See Problems pane for more <b>information</b>.`
Run Code Online (Sandbox Code Playgroud)

我认为我需要的是这样的:
查找:<span..>(capture anything except "</span>")</span>
替换:\1

([^<])*由于span中的其他标记,我不能将其用作捕获组,如<b>示例中所示.

我不能使用,<span class=\"temp\">(.*)</span>因为在一条线上可能有两个这样的.

我已经尝试使用非贪婪语法关闭整个标记,并使用我在其他帖子中找到的示例计算{1}语法,但我无法使其工作.

我已经找到了几个关于否定表达式的帖子,但是无法让它们处理捕获组中的否定HTML标记.我的确切问题有一篇文章,但是在PHP而不是Notepad ++中.

我将不胜感激任何建议.

regex notepad++

2
推荐指数
1
解决办法
5964
查看次数