在文件路径中使用通配符

时间:2019-05-15 11:38:40

标签: powershell

我需要在服务器上搜索一些文件...但是有问题的文件埋在用户ID下的文件夹中。因此,我尝试通配%username%以进入要搜索的文件夹。

使用%username%和*疲倦于通配上层文件夹以进入子文件夹。

$Path="\\server\profiles\%username%\Data\"
$filename='notes.ini'

Get-ChildItem -Path $Path -Recurse -Filter $filename -ErrorAction SilentlyContinue

我希望仅在Data文件夹中搜索notes.ini文件,而不必搜索其间的所有文件夹。

2 个答案:

答案 0 :(得分:1)

如果您不知道用户名,则可以在路径中使用通配符星号*

$Path     = "\\server\profiles\*\Data\"  #"# use wildcard to search all user folders 
$filename = 'notes.ini'

# this returns the full file and path names of the file you are looking for:
Get-ChildItem -Path $Path -Recurse -Filter $filename -File -ErrorAction SilentlyContinue | Select-Object -ExpandProperty FullName

如果这不是您想要的,请在问题中添加更多说明。

答案 1 :(得分:0)

Powershell中的

%username%是$ env:username

%username%不是通配符,它​​是cmd中的环境变量