2013-02-26 55 views
0

我试图递归搜索包含.exe的指定文件的目录,然后保存该目录路径以便稍后在变量中使用。Powershell保存ls搜索的目录路径?

我计算过,使用:

ls -recurse -filter "PsExec.exe" | sort name | ft directory,name 

将显示包含.exe的目录。有没有一种方法可以将目录保存下来,以便以后可以使用它在我的脚本的另一部分中引用.exe文件? .exe将被保存在一个动态命名的文件夹中,这就是为什么我无法硬编码它的路径。

+1

可以保存多个属性保证了文件是独一无二的?或者它会返回一组文件? – SirPentor 2013-02-26 20:24:21

+0

你可以在数组中传递结果'$ items = ls -recurse -filter“PsExec.exe”|排序名称| ft目录,名称' – Hiten004 2013-02-26 20:27:59

+0

您不想将'format-table'的结果传递给'$ items',但其余部分是个好主意。 – SirPentor 2013-02-26 20:29:21

回答

3

如果你只是想的完整路径保存到文件的单个实例,您可以使用

$path = ls -recurse -filter "PsExec.exe" | select -first 1 | select -expand FullName 

或者,如果你想

$file = ls -recurse -filter "PsExec.exe" | select -first 1 | select Name,FullName,Directory 

$file.Name 
$file.FullName 
$file.Directory 
+0

有没有办法让它搜索隐藏的文件夹呢? – fifamaniac04 2013-02-26 21:15:57

+0

将'-Force'标志添加到'ls'调用中 – latkin 2013-02-26 22:27:54