powershell - 如何在powershell中返回具有相同扩展名但包含特定名称结尾的文件?
问题描述
一个项目文件夹中有多个 .webp 文件。一些.webps 是原始图片,一些用作缩略图(它们的大小不同)。使用的命名约定是:原始文件仅称为 NAME.webp,而缩略图则为 NAME-thumb.webp。我正在尝试创建一个 Powershell 脚本,该脚本根据原始文件创建日期返回所有 -thumb.webp 文件。因此,如果今天创建了原始文件,则返回相应的 -thumb.webp(除了 -thumb 之外,它们具有相同的基本名称
到目前为止,这是我尝试过的,但仍有一些问题:
$webps = (Get-ChildItem -Path $dir -Filter '*.webp' -File | Where-Object { $_.CreationTime -gt $refdate }).BaseName
$output = Get-ChildItem -Path $dir -Filter '*.webp' -File | Where-Object { $webps -contains ($_.BaseName + "-thumb") }
解决方案
Get-ChildItem $dir\*.webp -Exclude *-thumb.webp -File |
Where-Object CreationTime -gt $refdate |
ForEach-Object { $_.Fullname -replace '\.webp$', '-thumb.webp' }
首先我们得到所有 * .webp文件,不包括 * -thumb.webp文件。使用Where-Object
我们只选择CreationTime
大于$refdate
. 最后,我们将.webp替换为-thumb.webp以返回缩略图文件的完整路径。
如果您只需要文件名,请替换$_.Fullname
为$_.Name
.
推荐阅读
- javascript - 我的机器人如何检查 js 警报是否弹出(并且可见)?
- azure-data-factory - 启用 SSL 后,无法从 azure 数据工厂连接到 azure postgres db
- generics - F#检查泛型类型参数是否被区分联合
- angular - Angular mat-menu 不同 onMenuClosed 基于事件
- sql - 使用表单中的信息填充 Access 表
- wordpress - Timber + Gutenberg ACF Blocks 不渲染前端
- ethereum - 如何检查 Truffle 支持的最新 Solidity 版本
- azure - Blob 存储 GZRS 复制的 DR 测试
- javascript - Puppeteer 写入某些选项卡的 pdf 的问题
- react-native - 如何使多边形交互反应原生?