2009-04-18 16 views
5

我試圖構建一個函數,它將顯示某個文件名所在的所有路徑。該函數將採用一個參數,即文件名。 結果可以是所有路徑的列表,也可以是系統中沒有此文件的消息。獲取powershell顯示可以在驅動器上找到某個文件的所有路徑

我是Powershell的新手,而且我還沒有掌握語法。 我已經試過這樣:

Get-ChildItem -Path -Include notepad.exe 

但拋出的錯誤消息。我目前正在嘗試:

$i="notepad.exe" 

Foreach ($i in Get-ChildItem c:\ -Recurse){echo -Path} 

現在開始,它仍在運行,不知道會發生什麼,真的。

編輯:回顯行的大量,只是說:「-Path」 ......

任何人可以幫助解決這個問題?順便說一句,我正在運行Powershell 1.0。

因此,要解釋什麼,我希望看到執行該命令時,這裏是我所尋找的* .TXT後想到一個例子:

C:/foo.txt
C:/A/foobar.txt
C:/A1/foo.txt

等,上市的路徑給所有。我的硬盤上的txt文件。只有路徑,每行一個,不需要額外的信息。

EDIT2:

我已經完成了。我將把這個問題留給那些未來尋找這個問題的人。

我所用這個(這個具體的例子會交給你在你的硬盤,編輯在需要所有.zip文件的列表)功能:

Get-ChildItem -Path c:\ -Include "*.zip" -Recurse -Force -Name > c:\listOfPaths.txt 

這創建了一個名爲listOfPaths.txt文件我C:\文件夾,其中包含以硬盤驅動器的所有子文件夾中以.zip結尾的所有文件的所有出現的列表。

未提及「c:\」位,但我不介意。

EDIT3:

感謝capar的更完整版本。

這裏是卡帕爾的代碼(或如何得到它的工作,因爲GET-兒童不工作1.0)

Get-ChildItem -Path c:\ -Recurse *.txt | Select-Object -Property FullName 
+2

+1把你帶回來爲0,我沒有看到任何值得一downvote的 – 2009-04-18 03:47:19

+0

感謝卡帕爾,仍試圖找出這個命令了。 – KdgDev 2009-04-18 03:48:41

+1

爲什麼有人強姦這篇文章,並downvote它?'dir * .zip/s> foo.txt'會做大約相同。 – ojblass 2009-04-18 04:44:41

回答

9

由於是星期五晚上,我決定和Power Shell一起玩,看看我能不能幫助:) 這與您所要求的非常接近我認爲:

Get-ChildItem -Path c:\ -Recurse *.txt | Select-Object -Property FullName 

如果有幫助,這條命令會列出由Get-ChildItem返回的任何對象的屬性:

Get-ChildItem | Get-Member 
1

LS C:\ -r | ? {$ _。name -eq「notepad.exe」}

1

GET-孩子是不是在PowerShell中V3承認無論是。如果有人刪除了這個不好的例子,那將會很棒。

作爲任何人搜索文件的警告:在當今的硬盤驅動器上的C:\將需要很長時間才能運行。建議儘可能縮小搜索範圍。由於您的文件夾結構可能包含空格或特殊字符,因此請使用打字機引號(「)或撇號(')定位符

$ mylistoffiles = Get-ChildItem -Path'C:\ Windows \ Setup \ Scripts'-Recurse * .CMD |選擇-對象,物業全名

$ mylistoffiles

相關問題