【发布时间】: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