windows - 如何获取不包含特定类型文件的文件夹/子文件夹列表?
问题描述
例如,我想打印一个包含文件的.html
文件夹列表。如果我错了,请纠正我,但这对我有用:
dir /S *.html > C:\Users\PC\Desktop\with-html.txt
现在我想找到不包含 .html 文件的文件夹。
我该怎么做?
编辑:
文件夹的结构方式是只有子文件夹(最后一个子文件夹)有任何类型的文件。我想获得这些子文件夹的目录列表。所以上面的命令行给了我:
C:\...\ml\regression\lasso-regression
C:\...\ml\regression\linear-regression
没有输出只是C:\...\ml
or C:\...\ml\regression
。
文件夹结构如下所示:
- C:\...\毫升
- 分类
- 回归
- 套索回归
- 线性回归
文件夹中有大约10个文件夹ml
,没有文件。在第二文件夹级别还有大约 10 个文件夹,其中C:\...\ml\regression\linear-regression
包含 HTML 文件,C:\...\ml\regression\lasso-regression
而不包含具有文件扩展名的文件.html
。只有文件夹树最后一级的文件夹才有文件。
我将不胜感激仅获得文件夹树中最后一个文件夹的列表,其中不包含具有文件扩展名的文件.html
。
我基本上将上面的命令行输出到一个.csv
文件中,用 MS Excel 过滤它,现在有一个包含.html
文件的文件夹列表。我基本上在使用 R-markdown 文件,这将是一个状态报告,带有 .html 文件的文件夹列表是我已经完成的。所以现在只需要对面的文件夹列表。
解决方案
使用 PowerShell 并不困难。
Get-ChildItem -Recurse -Directory |
ForEach-Object {
if ((Get-ChildItem -File -Path $_.FullName -Filter '*.html').Length -eq 0) { $_.FullName }
}
如果您必须在 .bat 文件脚本中运行它,可能会使用以下内容。
@powershell.exe -NoLogo -NoProfile -Command ^
"Get-ChildItem -Recurse -Directory |" ^
"ForEach-Object {" ^
"if ((Get-ChildItem -File -Path $_.FullName -Filter '*.html').Length -eq 0) { $_.FullName }" ^
"}"
推荐阅读
- c# - 如何过滤二维列表?
- amazon-web-services - 如何在 Amazon S3 浏览器上查看直接链接?
- java - @FindBy Selenium 如何找到 ::before
- python - 控制回归中的变量(Python)
- pandas - 删除重复点
- ansible - Ansible - 如何在播放期间重新生成主机 ssh_host_keys 而不会丢失连接
- c#-3.0 - 在c#中获取屏幕上文本的x和y坐标
- javascript - 为什么我只能在 for 循环内部成功找到
- 或标签下
- 使用 JavaScript 中的 getElementsByClassName 方法?
- 或标签下
- mysql - Adonisjs 以编程方式更改数据库
- python - 为什么使用 isin 更改数据框?