我现在整天都在苦苦挣扎。如果文件名与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
答案 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-\>