【问题标题】:How to, using CMD/Powershell, find all files in a directory (including subdirectories), and then display files that have certain extensions如何使用 CMD/Powershell 查找目录(包括子目录)中的所有文件,然后显示具有特定扩展名的文件
【发布时间】:2016-05-25 18:02:18
【问题描述】:

我需要使用 CMD/Powershell 创建一个脚本,该脚本可以在一个目录(和子目录)中找到所有以与媒体相关的扩展名结尾的文件 文件。我有一个 Unix 脚本可以做到这一点:

 find /directory/ | egrep -e ".*.(jpg|tif|png|gif|wav|mp3|ogg|flac|wma|aac|m4a|flv|webm|ogv|gif|gifv|avi|wmv|mp4|mpg|3gp)"

(我确信有更好的方法可以做到这一点,但它有效,对我来说没有问题。)

但是,我需要为 Windows 执行此操作。文件类型如下:

  • jpg
  • tif
  • png
  • gif
  • mp3
  • ogg
  • flac
  • wma
  • aac
  • m4a
  • flv
  • 网站
  • ogv
  • gif
  • gifv
  • avi
  • wmv
  • mp4
  • mpg
  • 3gp

编辑:即使我得到了正确的答案,可能的重复项也不正确。这是因为我需要将其输出到文件中。我使用 bgalea 的答案编写的脚本如下:

@ECHO OFF
set $ext=*.jpg *.tif *.png *.gif *.wav *.mp3 *.ogg *.flac *.wma *.aac *.m4a *.flv *.webm *.ogv *.gif *.gifv *.avi *.wmv *.mp4 *.mpg *.3gp
dir /s/b c:\Users%$ext% > mediafiles.txt
echo The locations of the media files were copied to mediafiles.txt 
pause

【问题讨论】:

  • @user4317867 编辑为什么不正确。
  • 然后我们将使用Get-ChildItem $originalPath\* -Include *.gif, *.jpg, *.xls*, *.doc*, *.pdf*, *.wav*, .ppt* 列出项目,查找FullName 属性,最后将其输出到文本文件。 (gci -Path C:\Scripts\* -Include *.csv, *.txt).fullname | out-file -FilePath c:\temp\test.txt;ii c:\temp\test.txt

标签: windows powershell batch-file cmd


【解决方案1】:
 dir /s /b c:\*.3gp c:\*.mpg* c:\*.mp4

等等

C:\ 表示从 c: 开始。 /s 提供子文件夹,/b 只提供名称。

【讨论】:

  • 你最好列个清单:set $ext=*.jpg *.tif *.png 然后dir /s/b c:\%$List% +1
  • +1,但是在c:\*.mpg 之后有一个不需要的*。此外,您可以在运行命令之前通过 PUSHD C:\ 保存一些输入,这样您就不需要在每个扩展名中都包含路径。
  • 参见 pushd /? - 另请参见通过 en.wikipedia.org/wiki/… 的快捷方式设置 UNC 工作目录 - 最后两段(由我编写)
【解决方案2】:

Powershell FTW!

$extensions = @("*.jpg", "*.tif"...ect ect)

Get-ChildItem C:\temp -Include $extensions -Recurse

【讨论】:

    猜你喜欢
    • 2010-09-06
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-03
    • 1970-01-01
    相关资源
    最近更新 更多