PowerShell专家,
我在文件夹(文件夹A)中有一些文件没有扩展名(.file)
我必须更改文件夹A中的一些文件内容,如下所示:
$configFiles=get-childitem . *. -rec
foreach ($file in $configFiles)
{
(Get-Content $file.PSPath) |
Foreach-Object {$_ -replace 'Cig - Prod Cen', 'Cig - Eco Gen'}|
Set-Content $file.PSPath
}
Cig - Prod Cen
被Cig - Eco - Gen
取代,但问题是,如果我这样做,它将被替换为所有文件。
如何替换所选文件?
请帮忙吗?
答案 0 :(得分:0)
你可以通过在阅读文件时过滤文件来做到这一点:
$configFiles= Get-ChildItem $FolderLocation -Recurse -Include *.config
现在它只会选择文件类型“config”,然后你可以按照你的建议进行操作。
-OR -
这是我在我的脚本中所做的,在更改之前检查:
if ($file.FullName.Substring($file.FullName.LastIndexOf('.')) -eq ".config")
现在 - 它只会继续执行.config文件并转到所有其他文件(适用于固定列表)。
祝你好运:)答案 1 :(得分:0)
我不确定你在问什么,但我猜你只想对没有扩展名的文件进行替换。 您可以使用以下Get-Childitem命令返回没有扩展名的文件:
Get-ChildItem . | where-object {$_.name -eq $_.BaseName -and $_.PSIsContainer -eq $false}