【问题标题】:List 2 folders using a single command使用单个命令列出 2 个文件夹
【发布时间】:2019-01-14 09:11:03
【问题描述】:

假设我有 2 个文件夹 A 和 B

Folder A contains files like "food.txt", "drinks.txt", ...
Folder B contains files like "beverage.txt", "entre.txt",...

有没有办法使用 dir (gci) 或任何命令来获得类似的输出

"beverage.txt", "drinks.txt", "entre.txt", "food.txt",..

【问题讨论】:

    标签: windows powershell command-line powershell-2.0


    【解决方案1】:

    只需使用:

    Get-ChildItem -File -Recurse | Select-Object -ExpandProperty Name
    

    -File 将仅列出文件 -Recurse 也会得到给定文件夹下的所有文件夹

    Select-Object -Expandproperty Name 只会给你文件名


    如果文件位于完全不同的位置,您只需提供GCImultiple Paths:

    Get-ChildItem -File -Path "PathToFolderA","PathToFolderB" | Select-Object -ExpandProperty Name
    

    【讨论】:

    • 文件参数给我“找不到与参数名称文件匹配的参数
    • @user10191234 您使用的是什么 Powershell 版本(如果不是 PS 5.0,您可能应该更新)?我不记得在哪个选项中引入了 -File,但在当前版本中它按预期工作。
    • @Paxz 访问左侧的docs.microsoft.com/en-us/powershell/module/… 您可以切换Powershell 版本并查看参数所在的位置。 PSv3 已经有 -File 所以这是一个 PSv2 问题。
    • Windows 7 sp1的那个
    • 它获取文件夹 A 文件然后是文件夹 B,是否可以对其进行修改以使它们交替出现,例如从 A 到 B,然后从 A,...
    【解决方案2】:

    PSv3 之前检查文件/目录的方法是检查 Where-Object 中的 PSIsContainer 属性

    所以这行会返回:

    PS A:\> Get-ChildItem -Path "Folder A","Folder B" |Where-object {!$_.PSIsContainer}| Select-Object -ExpandProperty Name
    drinks.txt
    food.txt
    beverage.txt
    entre.txt
    

    用双引号将您的问题文字用,分隔

    (Get-ChildItem -Path "Folder A","Folder B" |Where-object {!$_.PSIsContainer}|ForEach-Object { '"{0}"' -f $_.Name}) -join ', '
    "drinks.txt", "food.txt", "beverage.txt", "entre.txt"
    

    要对输出进行排序,只需插入 |Sort-Object Name

    (Get-ChildItem -Path "Folder A","Folder B" |sort Name|Where-object {!$_.PSIsContainer}|ForEach-Object { '"{0}"' -f $_.Name}) -join ', '
    "beverage.txt", "drinks.txt", "entre.txt", "food.txt"
    

    【讨论】:

    • 谢谢,但可以像我上面评论的那样交替使用吗
    • 这实际上是一个新问题,应该这样问。请注意,只有通过重读才能看到其他答案的 cmets。正如@Paxz 已经提到的那样,它将需要一种不同的方法。
    • 上面使用的两种方法都不返回标头,要将输出放入文件中,您可以使用重定向>,>>,Set-ContentOut-File。要了解命令和参数,请使用Get-Help cmdlet-name。否则会有新问题...顺便说一句,您应该使用tour 并阅读How to Ask
    猜你喜欢
    • 1970-01-01
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    相关资源
    最近更新 更多