我试图以递归方式搜索目录,找到其中的任何.inf文件并将这些文件传递给pnputil,将这些驱动程序添加到Windows驱动程序目录中。
我有以下内容:
cd /drivers
$x = ls -Path . -Filter "*.inf" -Recurse -ErrorAction SilentlyContinue
Foreach ($i in $x){
pnputil /a $i
}
我从pnputil收到以下错误:
添加驱动程序包失败:作为参数传递的INF无效。
我认为它失败了,因为pnputil并不喜欢它所得到的对象。关于通过什么或修改什么的任何建议?
谢谢!
答案 0 :(得分:2)
你知道问题是什么。您正在将对象传递给命令行。您需要做的是从System.IO.FileInfo
对象中提取完整路径以传递给pnputil
Foreach ($i in $x){
& pnputil /a $i.FullName
}
那应该可以得到你想要的结果。您可以做的另一件事是更改$x
,以便它是一个文件名数组。 -ExpandProperty
是重要的一部分。
$x = ls -Path . -Filter "*.inf" -Recurse -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Fullname
Foreach ($i in $x){
pnputil /a $i
}