3

我正在使用 mediainfo 程序从我的文件中提取信息。我可以在 Powershell 中运行以下命令,它会返回我想要的信息。我不知道该怎么做是递归地遍历每个目录并仅查看某些扩展名。我知道我需要并包含我想要的扩展,但不知道该怎么做。

现在有效的命令是:

.\mediainfo.i386 --inform=file://x:\stuff.txt x:\pic >>x:\output.txt  

stuff.txt具有我正在寻找的参数。并且x:\pic是包含更多需要搜索的目录的目录。然后将信息附加到output.txt文件中。这适用于 cmd 行,但它会提取我只想查找.png, .jpg, .bmp文件的所有内容。

另一个好处是将此脚本放在任何目录中并运行它。我知道我必须将脚本和 txt 文件放在同一个目录中,但是有没有办法像 dos 一样使用 %1.

谢谢

4

1 回答 1

0

您可以使用过滤器仅返回您正在寻找的项目。例如,这将列出当前文件夹及其子文件夹中的所有 JPG 文件:

gci -name -recurse . | ? { $_.Contains(".jpg") } | % { "file: " + $_ }

两个关键部分是:

  • ? -- Where-Object,它只将匹配的名称传递给管道中的下一个项目
  • % -- Foreach-Object,它对管道中的每个项目做一些事情

正如克里斯蒂安在评论中指出的那样,这更有效:

gci -name -recurse . -filter *.jpg | % { "file: " + $_ }

我希望这足以回答你的问题。

于 2012-11-06T19:45:40.443 回答