2015-02-10 53 views
0

我真的需要一些幫助使用PowerShell,在PowerShell中PowerShell的 - 變量陣列的 - 查找文件夾,然後文件中的文件夾

完整的新手我有下面的命令,該命令輸出創建一個名爲「XYZ」的路徑搜索文件夾列表在A股多次,用作可變

$FOLDERLISTS = (Get-ChildItem \\server\share -Recurse | Where-Object { ($._PSIsContainer -eq $true) -and ($_.Name -like "xyz" -and ($_.mode -match "d") | % { Write-Host $_.FullName }) 

我如何使用多個文件夾路徑,我可以把這個作爲一個變量?

基本上我只想獲取文件夾路徑,然後對上面的命令輸出的每個文件夾路徑運行另一個Get-ChildItem,因此如果它是單個變量,則該命令看起來像;

Get-ChildItem "@ABOVECOMMAND" -Recurse | Where-Object (!($_.PSIsContainer) -and $_.lenght -le 1000000) 

我可以以某種方式使用的ForEach對於這個在多條路徑運行?

foreach ($FOLDERLIST in $FOLDERLISTS) 
{ 
Get-ChildItem -Recurse | Where-Object { !($_.PSIsContainer) -and $_.lenght -le 1000000 } 
} 

或者

$FOLDERLISTS | ForEach-Object{ 
Get-ChildItem -Recurse | Where-Object { !($_.PSIsContainer) -and $_.lenght -le 1000000 } 

或者只是路徑導出到一個文本文件,並導入到命令?完全卡住。

+0

你在哪裏卡住了?看不出爲什麼你最後兩條建議中的任何一條不應該工作 – arco444 2015-02-10 16:59:17

+0

最後兩條創意都不會像書面一樣正常工作。既沒有變量來引用循環的當前迭代。第一個想法是$ FOLDERLIST。第二個想法是$ _。 – EBGreen 2015-02-10 17:03:08

回答

1

你的第一次嘗試應該更多這樣的:

foreach ($FOLDERLIST in $FOLDERLISTS) 
{ 
Get-ChildItem $FOLDERLIST -Recurse | Where-Object { !($_.PSIsContainer) -and $_.lenght -le 1000000 } 
} 

或你的第二次嘗試是這樣的:

$FOLDERLISTS | ForEach-Object{ 
Get-ChildItem $_ -Recurse | Where-Object { !($_.PSIsContainer) -and $_.lenght -le 1000000 } 
+0

謝謝坎貝爾我從你的評論中想到我可以看到我要去哪裏錯了,得到的孩子沒有通過任何東西!我會給這個嘗試看起來像贏家! – 2015-02-10 19:11:57

相關問題