我想检查文件Test.txt是否存在于特定目录(文件夹名称为16位)中。
例如,我尝试使用以下命令:
Test-Path "C:\Users\<USERNAME>\Desktop\Test\([0-9]{16})\Test.txt"
以下情况无法使用以下命令。
Test-Path "C:\Users\<USERNAME>\Desktop\Test\*\Test.txt"
谢谢!
答案 0 :(得分:2)
这将是这样做的一种方式:
# This is for PowerShell version 3.0 and up. If you are using an older version, use
# Get-ChildItem -Path "C:\Users\<USERNAME>\Desktop\Test" | Where-Object { $_.PSIsContainer -and $_.Name -match '\d{16}' }
Get-ChildItem -Path "C:\Users\<USERNAME>\Desktop\Test" -Directory | Where-Object { $_.Name -match '\d{16}' } |
ForEach-Object {
$fileName = Join-Path -Path $_.FullName -ChildPath 'Test.txt'
if (Test-Path -Path $fileName -PathType Leaf) {
Write-Host "$fileName exists"
}
else {
Write-Host "$fileName does not exist"
}
}
答案 1 :(得分:1)
Test-Path
将返回$ True / $ False,以实现可以执行的类似操作:
((Get-ChildItem "C:\Users\<USERNAME>\Desktop\Test\*\Test.txt" |
where FullName -match "\\Test\\\d{16}\\Test.txt$").Count -gt 0)
但这不会显示匹配的文件夹。