【问题标题】:Command to list all files in a folder and its sub-folders showing filenames only (no paths) using Win cmd.exe使用 Win cmd.exe 列出文件夹及其子文件夹中的所有文件的命令,仅显示文件名(无路径)
【发布时间】:2019-06-10 12:53:26
【问题描述】:

我正在寻找一个使用 cmd.exe (Win 10) 的命令,该命令将按字母顺序列出文件夹及其子文件夹中的所有文件,而与路径无关,并且将仅显示 文件名(没有路径)。

我熟悉的命令(包括,例如,“dir ..\samplefolder /b /s /A-D /o:n > filelist.txt”)都包含输出中的路径,因此也是不是我要找的东西。

谢谢。

【问题讨论】:

  • 谁能解释一下h4z3上面的链接在这里做什么?
  • 上面的链接解释了类似的情况,如何在 Windows 中执行 bash cut 之类的操作。在链接中它是关于用斜杠切割的,你需要用反斜杠切割。我对 windows cmd 处理的不多,所以我搜索了我将在 bash 中使用的内容。我发布链接只是因为:a)它是评论,而不是答案,b)链接中的答案已经解释了一些东西,c)我在工作,所以没有时间解释东西。
  • 谢谢。我无法看到如何使用链接信息,但感谢您的努力。

标签: powershell cmd windows-10


【解决方案1】:
(for /r "c:\startfolder" %%A in (*) do echo %%~nxA)|sort

(这是批处理文件语法;要直接在命令行上使用,请将每个 %% 替换为 %

for /r 循环r遍历所有(非隐藏)文件。

%%~nxA 仅显示 name 和 ex张力(如果您只想要不带扩展名的名称,请使用 %%~nA

有关这些修饰符的更多信息,请参阅for /?

【讨论】:

  • 谢谢,但我没有得到我正在寻找的结果:(1) 文件列表不是严格按字母顺序排列的;它是按字母顺序排列的,但文件列表顺序反映了子文件夹路径的顺序,而不是忽略这些路径;换句话说,文件是根据它们的路径分组的。 (2) 输出显示 cmd 窗口中的所有文件,但输出是 not 显示我重定向的 .txt 文件中的所有文件(通过“>”)输出到;相反,.txt 文件只包括列表中的最后一个文件。
  • 抱歉 - 我完全忘了对它们进行排序。请查看我的编辑。
  • 谢谢,但是您修改/编辑命令的结果文本文件是完全空白的。 ?
  • 您是否根据您的环境调整了 startfolder?
  • 好吧,它对我有用,因为我看不到你在尝试什么,我不得不猜测。 “不工作”不是很有用。也许您应该将当前(无效)命令编辑到您的问题中。
【解决方案2】:

如果机器在当前的 PowerShell 5 或更高版本上,您可以使用:

(Get-ChildItem -Recurse -File -Path '..\samplefolder').Name |
    Sort-Object |
    Out-File -PSPath 'filelist.txt' -Encoding ascii

在 .bat 文件脚本中。

>"filelist.txt" powershell -NoLogo -NoProfile -Command ^
    "(Get-ChildItem -Recurse -File -Path '..\samplefolder').Name | Sort-Object"

如果机器没有当前的PowerShell,应该升级或使用:

>"filelist.txt" powershell -NoLogo -NoProfile -Command ^
    "(Get-ChildItem -Recurse -Path '..\samplefolder'|" ^
        "Where-Object { -not $_.IsContainer}).Name |" ^
        "Sort-Object"

【讨论】:

  • 谢谢。我确实有 PowerShell 版本 5。今天晚些时候会试试这个。
  • 这 (PowerShell) 是最好的解决方案:(Get-ChildItem -Recurse -File -Path '..\samplefolder').Name |排序对象 | Out-File -PSPath filelist.txt' -Encoding ascii
  • 与其他 (cmd.exe) 方法相比,PowerShell 方法有两个优点:(1) 它生成的 .txt 文档列出了所有文件名,以及 (2) 它列出了 那些文件名,而另一种方法也列出(仅在 cmd 窗口中)文件次,显示完整路径。感谢 Stephan 和 lit。
猜你喜欢
  • 2016-07-24
  • 2013-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-19
  • 2013-12-11
  • 1970-01-01
相关资源
最近更新 更多