paw*_*_86 5 console powershell
我正在尝试获取具有特定扩展名的所有文件的列表.
(...)$_.Extension -eq ".$ext"
Run Code Online (Sandbox Code Playgroud)
我读了从控制台到脚本的扩展.
我的问题是如何找到任何扩展名为.*?的文件 ?
编辑:
这是代码的其余部分:
$setOfFolders = (Get-ChildItem -Path D:\ -Directory).name
Write-host "Set last write date " -ForegroundColor Yellow -NoNewline
$ostZmiana= read-host $exten = read-host "Set extensions "
ForEach ($f in $setOfFolders)
{
$saveTofile = "C:\Users\pziolkowski\Desktop\Outs\$f.txt"
Get-ChildItem -Path D:\Urzad\Wspolny\$f -Recurse | ? {$_.LastAccessTime -lt $ostZmiana -and $_.Extension -eq ".$exten"} | % {Get-acl $_.FullName} |sort Owner | ft -AutoSize -Wrap Owner, @{Label="ShortPath"; Expression= $_.Path.Substring(38)}} > $saveToFile
}
Run Code Online (Sandbox Code Playgroud)
您还可以在Get-ChildItem上使用-filter:
Get-ChildItem -Filter "*.txt"
你也可以指定递归:
Get-ChildItem -Recurse -Filter "*.txt"
该$_.Extension会看到文件,(在一个文本文件的情况下).txt
如果$ext当前是有效的扩展名,那么.$ext看起来就像是..txt回显了.
在PowerShell中获取具有特定扩展名的文件列表的最简单方法是两个中的一个,真的.
C语法:
$myList
Get-ChildItem |`
Foreach-Object {
if ($_.Extension -eq ".txt") { $myList += $_}
}
Run Code Online (Sandbox Code Playgroud)
PowerShell风格:
Get-ChildItem | Where-Object {$_.Extension -eq ".txt"} | Do stuff
Run Code Online (Sandbox Code Playgroud)
要获取所有文件,因为大多数文件都有扩展名,只需使用Get-ChildItem或GCI或ls.(GCI和LS是Get-ChildItem的别名).
要获取具有扩展名但不是特定扩展名的所有文件:
Get-ChildItem | Where-Object {$_.Extension}
Run Code Online (Sandbox Code Playgroud)
这评估为bool,如此真或假.
这些都是袖口,但应该让你朝着正确的方向前进.