我希望能够查看数组,如果源目录包含文本文件所需文件的副本,则将该文件的副本放入另一个文件夹。
$Source=get-content .\2cHotfix.txt
$Available=gci
foreach($item in $Source){
$_ -match $Available;`
Copy-Item $item .\InUse\*.*
}
示例可用输出
gci -Include *.cab -Recurse| select -First 5 -ExpandProperty Name
windows8-rt-kb2727528-x64_92649202b7e2269d8389cb4c196e97bb71ef244c.cab windows8-rt-kb2729462-x64_98376c883f61da7ff61d61bed1ab2770c8cdde2c.cab windows8-rt-kb2736693-x64_461a3322139f134f066bc66c209714f42ad7857f.cab windows8-rt-kb2737084-x64_67da24ea41c8a42f75d09656713697f80f263a14.cab windows8-rt-kb2742614-x64_791ea59ee9e2500a6d60d011544245c3af7de1e7.cab
示例源文本文件输入。
hotfixid
KB2756872
KB2758246
KB2761094
答案 0 :(得分:1)
在看到您的文件格式和预期的文件名后,我已经更新了。
第一行跳过2cHotfix.txt的前两行,因为我们不想尝试匹配“Hotfixid”或空行。然后我们检查当前目录中是否有任何文件包含我们当前正在检查的来源(格式为KB #######)格式的行。如果找到文件,我们将其复制到./InUse文件夹。
$Source=get-content .\2cHotfix.txt | select -Skip 2
foreach($item in $Source){
$file = gci -filter $("*{0}*" -f $item)
if ($file -ne $null)
{
Copy-Item $file .\InUse
}
}