如果filename匹配CSV中的单词,则删除目录中的项目

时间:2016-12-27 15:09:14

标签: powershell csv powershell-v2.0

我现在整天都在苦苦挣扎。如果文件名与CSV列表中的单词匹配,我试图删除给定目录中的任何文件。

我已将CSV列表导入为文本,然后尝试将字词与目标目录中的文件名匹配,但我不确定要使用哪个运算符或如何进行此操作。显然'匹配'不是cmdlet。

#store csv file as variable

$CSVList = Get-content -Delimiter (',') -path "C:\Users\Leeds TX 11\Desktop\Test folder\Watchfolder\DAZN Production Numbers - purgelist.csv"

write-host $CSVList 

#delete if word matches .csv entry

$targetdirectory =  "C:\Users\Leeds TX 11\Desktop\Test folder\AVMedia"
$Files = Get-childItem $targetdirectory | Match ("\w") $CSVList | remove-item -whatif
write-host $Files

2 个答案:

答案 0 :(得分:1)

只需在管道中添加Where-Object,即可检查Name属性是-In $CSVList

# ...
$Files = Get-ChildItem $targetdirectory | Where-Object Name -In $CSVList | Remove-Item -whatif

注意:我认为CSV中的文件名包含文件扩展名。如果没有,您想将Where-Object Name更改为Where-Object BaseName

编辑。由于您使用的是PowerShell版本2,因此必须使用-contains并交换变量:

$Files = Get-ChildItem $targetdirectory | Where-Object {$CSVList -contains $_.BaseName} | Remove-Item -whatif

答案 1 :(得分:0)

尝试类似这样的事情

<leader>\ <C-W><S-\>