PowerShell - 使用-passThru复制项目以发布流程文件

时间:2014-09-08 10:22:20

标签: powershell

新手坚持做基础。

我正在尝试将文件从A复制到B&然后替换复制的每个文件中的文本。非常基本 - 但它失败我做错了什么?欢迎任何帮助 - 请。 nb我相信我需要使用copy-item,只要相同的结果,替代品就可以了。

$files = Copy-Item -Path "C:\from" -Filter *.* -Recurse -Destination "C:\to" -Force -PassThru

foreach ($file in $files) { 

     Get-Item $file | 
     Where-Object {-not $_.PsIsContainer} | 
     (Get-Content .) | 
     Foreach-Object {
         $_ -replace ( "maskkey", $maskvalue} |                          
         Set-Content $file 
         }
}

1 个答案:

答案 0 :(得分:0)

您需要在foreach-object脚本块中移动get-content部分,并使用$ _而不是。

所以,像这样:

foreach($file in $files){
    Get-Item $file | Where-Object {-not ($_.PsIsContainer)} | Foreach-Object{
        $content = Get-Content $_
        $newContent = $content.replace("maskkey", $maskvalue)
        Set-Content -Value $newContent -Path $file
    }
}

请注意。我还没有真正测试过这段代码,但你至少应该拥有正确的基本结构。