尝试在PowerShell中查找具有特定字符串的文件

时间:2013-12-18 20:33:03

标签: powershell

我正在使用powershell来查找用户输入的目录中的所有文件,并使用用户输入的字符串。现在,如果你运行我的脚本,并输入一个没有子文件夹的文件路径,那么脚本工作正常,但如果我添加一个带有子文件夹的文件夹,那么它会给我一个拒绝访问错误。我尝试了几种不同的方法对其进行编码,但没有成功。我需要它能够搜索父目录以及子文件夹。这就是我现在所拥有的。

#Sets the ability to execute the script
Set-ExecutionPolicy RemoteSigned

#Requests the loctation of the files to search
$Location = Read-Host 'What is the folder location of the files you want to search?'

#Sets the location based off of the above variable
Set-Location $Location 

#Sets the alias
Set-Alias ss Select-String 

#Requests the text to search for in the files
$File_Name = Read-Host 'Object Name?'

#Searches the files and returns the filenames
ss $File_Name * | Format-List FileName

#Sets location back to root
Set-Location C:

Write-Host "Press any key to continue ..."

$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

1 个答案:

答案 0 :(得分:5)

不要将文件夹指定为Select-String。替换此行:

ss $File_Name * | Format-List FileName

Get-ChildItem -r | Where {!$_.PSIsContainer} | ss $File_Name

在V3或更高版本上,您可以简化为:

Get-ChildItem -r -file | ss $File_Name