PowerShell获取子项并获取几个文件夹深处的内容

PowerShell获取子项并获取几个文件夹深处的内容,powershell,Powershell,我下面的脚本仅适用于在文件位置之前使用$\uubefore的1个文件夹: get-childitem E:\WebSystems\Configs\ | Foreach-Object {get-content E:\WebSystems\Configs\$_\Web.config} | foreach-object {$_ -replace "Web1", "Web2"} | set-content E:\WebSystems\Configs\$_\Web.config} 两个文件夹深怎么样?例

我下面的脚本仅适用于在文件位置之前使用$\uubefore的1个文件夹:

get-childitem E:\WebSystems\Configs\ | Foreach-Object {get-content E:\WebSystems\Configs\$_\Web.config} | foreach-object {$_ -replace "Web1", "Web2"} | set-content E:\WebSystems\Configs\$_\Web.config}
两个文件夹深怎么样?例如:E:\WebSystems\Configs\Folder1\Folder2\Web.config

以下脚本不起作用

get-childitem E:\WebSystems\Configs\ | Foreach-Object {get-content E:\WebSystems\Configs\$_\$_\Web.config} | foreach-object {$_ -replace "Web1", "Web2"} | set-content E:\WebSystems\Configs\$_\$_\Web.config}
这应该起作用:

get-childitem -recurse -include Web.Config | foreach-object { $name = $_.FullName; get-content $name } | foreach-object {$_ -replace "Web1", "Web2" } | set-content $name
我恳求您在一个独立的临时目录上测试这个。您可能希望首先尝试以下方法:

get-childitem -recurse -include Web.Config | foreach-object { $name = $_.FullName; get-content $name } | foreach-object {$_ -replace "Web1", "Web2" } | set-content "$name.modified"
这应该起作用:

get-childitem -recurse -include Web.Config | foreach-object { $name = $_.FullName; get-content $name } | foreach-object {$_ -replace "Web1", "Web2" } | set-content $name
我恳求您在一个独立的临时目录上测试这个。您可能希望首先尝试以下方法:

get-childitem -recurse -include Web.Config | foreach-object { $name = $_.FullName; get-content $name } | foreach-object {$_ -replace "Web1", "Web2" } | set-content "$name.modified"

我收到一个错误,它说表达式只允许作为管道的第一个元素。抱歉,我不小心在最后一个表达式周围有了额外的大括号。它说正则表达式模式无效,它是在单词replace之后引用的。很可能您没有用Web2替换Web1,并且应用到的正则表达式中有错误-replace是的,您是对的。我要替换的是一个目录,replace函数不支持长或复杂的值。是否有其他脚本修复此问题?我收到一个错误,该错误表示表达式仅允许作为管道的第一个元素。抱歉,我不小心在最后一个表达式周围有额外的大括号。它表示正则表达式模式无效,它是在单词replace之后引用的。很可能您没有用Web2替换Web1,并且应用到的正则表达式中有错误-replace是的,您是对的。我要替换的是一个目录,replace函数不支持长或复杂的值。是否有其他脚本修复此问题?