2014-12-05 34 views
2

我試圖遞歸搜索一個目錄,在其中找到任何.inf文件並將這些文件傳遞給pnputil以將這些驅動程序添加到Windows驅動程序目錄中。powershell將.inf文件傳遞給pnputil

我有以下幾點:

cd /drivers 

$x = ls -Path . -Filter "*.inf" -Recurse -ErrorAction SilentlyContinue 

Foreach ($i in $x){ 
    pnputil /a $i 
} 

,我從pnputil出現以下錯誤:

添加驅動程序包失敗:無效的INF作爲參數傳遞。

我假設它失敗,因爲pnputil不喜歡它所得到的對象。任何關於通過它的建議或要修改的內容?

謝謝!

+0

'&pnputil/a $ i.FullName'也許..我很確定我會關閉。你有一個DirectoryInfo對象。你只需要使用全名屬性 – Matt 2014-12-05 21:12:20

+0

美麗這就是它,請發佈爲答案 – andrsnn 2014-12-05 21:13:16

回答

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 
} 
+0

你是對的,我想我很迷惑自己,因爲我正在管道對象選擇,'$我|選擇全名「,然後到pnputil。愚蠢的感謝! – andrsnn 2014-12-05 21:17:34

相關問題