【发布时间】:2018-03-26 14:22:17
【问题描述】:
我有一个简单的数据库查询,它返回一组当前用户
例如
ABB016
ACQ002
AGU003
AHM007
我想删除特定文件夹中的所有文件,这些文件的名称位于文件结尾 (BaseName) 左侧,但在此数组中找不到。
下面的代码是我目前拥有的,但是目前它会删除该目录中的所有文件
# Find files that do not have the same basename as current users' name and delete
Get-ChildItem -path $DirectoryWithFiles -rec *.* | Where-Object {
$SQLQeryResultsSet -NotContains $_.BaseName } |
Remove-Item -WhatIf
如果:对目标“ABB016.pdf”执行“删除文件”操作。
如果:对目标“ACQ002.pdf”执行“删除文件”操作。
如果:对目标“AGU003.pdf”执行“删除文件”操作。
我做错了什么?
【问题讨论】:
-
也许验证
$SQLQeryResultsSet实际上包含预期的字符串值。即检查$SQLQeryResultsSet[0]是预期的第一个用户名,$SQLQeryResultsSet[0].GetType()返回String -
感谢@Mathias $SQLQeryResultsSet[0] -> ABB016 和 $SQLQeryResultsSet[0].GetType() -> DataRow。
标签: arrays powershell