PowerShell 检查文件类型

3

我正在编写一个脚本,用于修改文件夹中的图像,大部分情况下都已经完成了,我使用Get-ChildItem与目录一起使用。

所以我当前正在做的是创建一个名为的变量

$fileExtension = [IO.Path]::GetExtension($files[$counter].Name)

使用类似以下 if 语句的方式:

if($fileExtension -eq '.png' or
    $fileExtensiono -eq '.jpg'. . . )

有更好的方法吗?我真的希望它能执行修改图像的函数,如果文件是图像,则文件夹可能包含其他项目,例如zip文件,如果脚本检测到它会崩溃。


If ('.png', '.jpg', ... -Contains $fileExtention) {... - iRon
现在我发现这样做存在一个问题,我要对这些图像做的事情是向图像本身添加一个数字。所以在执行Get-ChildItem时,我认为我只需要获取图像。所以我发现使用-Recusive和-Include @("*.png"等)可以工作,但如果文件夹有子文件夹,它会使脚本崩溃。如何使用 Get-ChildItem 只关注当前目录。不包括递归,在没有递归的情况下,-Include不起作用。 - l3l00
在执行 Get-ChildItem *|Where-Object Extension -in '.png','.jpg' 或者 Get-ChildItem * -include '*.png','*.jpg' 命令时,我会首先限制所需的扩展名。 - user6811411
@LotPings - 就是这样!Where-Object是解决方案 ^-^ 因此,如果它具有其他文件类型而不是常见的图像文件类型,它根本不会列出它们,这使计数保持正确。非常感谢你! - l3l00
1个回答

3

试试这样做:

get-childitem 'c:\temp\*' -file -include '*.png', '*.jpg'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接