Powershell 3.0:搜索特定文件名并将名称发送到.txt文件

时间:2015-10-21 14:06:56

标签: powershell

这是我的代码:

Get-ChildItem 'R:\Source\Path' |
ForEach-Object { $_.Name -notlike '*condition*' } > 'R:\Destination\Path\File.txt'

代码在某种程度上有效。除了将文件的名称复制到目标之外,它取而代之的是根据条件的状态将true或false写入文本文件。所以我期望一个.txt文件列表的名称,而是我有一些看起来像:

True
True
False
True
False
False

......等等......

我做错了什么?

1 个答案:

答案 0 :(得分:2)

要过滤您的输出,请使用Where-Object代替ForEach-Object

Get-ChildItem |Where-Object {$_.Name -notlike "*.zip"} > output.txt

要获取文件的完整路径,请使用Select-Object -ExpandProperty

Get-ChildItem |Where-Object {$_.Name -notlike "*.zip"} |Select-Object -ExpandProperty FullName > output.txt

或将原始ForEach-Object scriptblock中的逻辑更改为-notlike

的结果 act
Get-ChildItem |ForEach-Object {
    if($_.Name -notlike "*.zip"){
        $_.FullName
    }
} > output.txt