新手坚持做基础。
我正在尝试将文件从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
}
}
答案 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
}
}
请注意。我还没有真正测试过这段代码,但你至少应该拥有正确的基本结构。