我几天前开始学习powershell,我在谷歌上找不到任何我需要的东西,所以请忍受我的问题。
我被要求将一些文本字符串替换为多个文件。我不一定知道可能的目标文件的扩展名,我也不知道它们的位置。到目前为止,我已经成功递归地浏览到目录(get-ChildItem -recurse),并找到我正在寻找的字符串get-content和select-string:
Get-ChildItem -recurse | Get-Content | Select-String -pattern "dummy"
问题是,我可以看到我正在寻找的文本的出现,但我不知道如何告诉PS返回每个匹配文件的路径和名称。
如何获得包含我正在寻找的表达式的文件的名称和位置?
这个脚本可以在3 000 000文件中找到一个特定的文件
Param
(
#Define o parametro do ano a eliminar "2020"
$DateDel = '2019',
#Define o parametro do registro do ficheiro "_800" ou "_800sm" ou "_200"
$ResFile1 = '_200',
$ResFile2 = '_800',
$ResFile3 = '_800sm',
#Define o parametro da terminacao do ficheiro "_800.jpg" ou "_800sm.jpg" ou "_200.jpg"
$TypeFile = '.jpg',
#Define o parametro de onde se localizado ficheiro "C:\users\Luis.Cunha\Desktop\LuisCunha\TarefaScript\TesteFinal\TesteScript1"
$HomePath = 'C:\Users\Luis.Cunha\Desktop\LuisCunha\TarefaScript'
)
#Inicia transcriçao de toda informação para o ficheiro .log indicado
Start-Transcript -Path $HomePath\CountDelItems.log -NoClobber -Append
Get-ChildItem $HomePath -Recurse -File | Measure-Object | %{$_.Count}
#o Get vai buscar o ficheiro com a data e a terminacao definidas no $homepath e $tipofich atraves do caminho indicado no $path
#depois confirma os valores que foram removidos com o verbose
Get-Childitem -Path $HomePath -Recurse -force | Where-Object { !$_.PSIsContainer -and $_.name -like "????$DateDel*$ResFile1$TypeFile" } | Measure-Object | %{$_.Count}
#Get-Childitem -Path $HomePath -Recurse -force | Where-Object { !$_.PSIsContainer -and $_.name -like "????$DateDel*$ResFile1$TypeFile" } | Remove-Item -Verbose -Force
Get-ChildItem $HomePath -Recurse -File | Measure-Object | %{$_.Count}
#Termina transcrição
Stop-Transcript