在PowerShell中选择选定的文件问题

时间:2014-03-18 12:38:48

标签: powershell powershell-v3.0 powershell-ise

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 CenCig - Eco - Gen取代,但问题是,如果我这样做,它将被替换为所有文件。

如何替换所选文件?

请帮忙吗?

2 个答案:

答案 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}