我正在尝试查找目录及其所有子文件夹中的所有.aspx
个文件,以便我可以在<head>
标记下添加标记。父目录中可能包含.aspx
个文件以及子文件夹。
换句话说,我希望选择该目录中的所有.aspx
文件以及其子文件夹中的所有.aspx
文件,这些子项中的所有.aspx
个文件等。我正在使用以下PowerShell代码片段来执行此操作:
$files = Get-ChildItem -Path C:\Users\apgdy\Downloads\test_proj -recurse -filter "*.aspx"
当我在PowerShell控制台中运行它并显示$files
的内容时,我得到了我期望在屏幕缓冲区中显示的所有文件。但是,当我尝试使用以下代码向文件添加文本时,出现错误:
代码:
$textIsAddedAfter = "<head>"
$textToAdd = " <sometag>"
ForEach ($file in $files) {
(Get-Content $file) |
Foreach-Object {
$_
if($_ -match $textIsAddedAfter) {
$textToAdd
}
} |
Set-Content $file
}
错误:
Get-Content : cannot find path 'C:\users\apgdy\test.aspx' because it does not exist.
At line:2 char:17
+ <Get-Content <<<< $file> |
+ CategoryInfo : ObjectNotFound: <C:\Users\apgdy\test2.aspx:String
> [Get-Content], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetCo
ntentCommand
我在$files
中找到的每个文件中都有一个
奇怪的是,在代码中,我告诉控制台,文件存在于"C:\users\apgdy\Downloads\test_proj"
及其子项中,而不是"C:\users\apgdy"
。为什么它从我告诉它寻找文件的目录中省略"\Downloads\test_proj"
?
提前致谢!