使用Powershell中的文本文件中的字符串过滤gci的结果

时间:2012-01-28 10:20:39

标签: powershell powershell-v2.0

将我母亲的DVD库全部翻录为Drobo-FS后,她面临的问题是,只需点击一下鼠标就可以选择这么多选项。我的解决方案是一个开始播放随机电影的Powershell脚本:

$files = Get-Childitem -Recurse -Path "\\DROBO-FS\Videos\Movies" -include *.mkv,*.avi,*.mp4,*.m4v
$ran = Get-Random -minimum 0 -maximum ($files.length - 1)
$movie = $files[$ran] 
& "C:\Program Files (x86)\MPC-HC\mpc-hc.exe" $movie

现在的问题是那里有一些她不想随意出现的电影,她只在某些场合观看或根本不喜欢的东西。

我对此的解决方案是一个文本文件,她可以在其中写下她不想作为随机选择的一部分的电影的名称。我的问题是我不太确定如何阅读文本文件中的名称,然后将其从Get-Childitem中获得的结果中过滤掉。

1 个答案:

答案 0 :(得分:3)

将要排除的影片的文件名放在一个文件中(每行一个name.ext),并将该文件的内容传递给Exclude参数:

$exclude = Get-Content .\exclude.txt
$files = Get-Childitem -Recurse -Path "\\DROBO-FS\Videos\Movies" -Include *.mkv,*.avi,*.mp4,*.m4v -Exclude $exclude
$movie = $files | Get-Random
& "C:\Program Files (x86)\MPC-HC\mpc-hc.exe" $movie.FullName