PowerShell - 两个字符之间的小写文本
PowerShell - lowercase text between two characters
我有很多 .txt 文件,我需要将两个字符之间的内容小写 - 在“%”之后和“;”之前。
下面的代码使文件中的所有内容都变成小写,我需要它只在提到的两个字符之间的所有情况下都这样做。
$path=".\*.txt"
Get-ChildItem $path -Recurse | foreach{
(Get-Content $_.FullName).ToLower() | Out-File $_.FullName
}
这里是一个使用 regex 替换为回调函数以执行小写的示例:
$path=".\*.txt"
$callback = { param($match) $match.Groups[1].Value.ToLower() }
$rex = [regex]'(?<=%)(.*)(?=;)'
Get-ChildItem $path -Recurse | ForEach-Object {
$rex.Replace((Get-Content $_ -raw), $callback) | Out-File $_.FullName
}
解释:
正则表达式使用正后向查找 %
的位置,并使用前向查找 ;
的位置并计算组中的所有内容:
caputred 组被传递给 callback
函数,该函数在其上调用 ToLower()
。
我有很多 .txt 文件,我需要将两个字符之间的内容小写 - 在“%”之后和“;”之前。
下面的代码使文件中的所有内容都变成小写,我需要它只在提到的两个字符之间的所有情况下都这样做。
$path=".\*.txt"
Get-ChildItem $path -Recurse | foreach{
(Get-Content $_.FullName).ToLower() | Out-File $_.FullName
}
这里是一个使用 regex 替换为回调函数以执行小写的示例:
$path=".\*.txt"
$callback = { param($match) $match.Groups[1].Value.ToLower() }
$rex = [regex]'(?<=%)(.*)(?=;)'
Get-ChildItem $path -Recurse | ForEach-Object {
$rex.Replace((Get-Content $_ -raw), $callback) | Out-File $_.FullName
}
解释:
正则表达式使用正后向查找 %
的位置,并使用前向查找 ;
的位置并计算组中的所有内容:
caputred 组被传递给 callback
函数,该函数在其上调用 ToLower()
。