正如标题所述,我需要将来自不同目录的各种图像文件的文件名以列表形式导出到单个文本文件中。我该如何完成这项任务?
其次,是否可以部分删除文本文件中列出的文件名?请看截图:
我需要删除文件名“HS3-HTS-”并仅保留文件名的数字。
最后,我是否需要命令提示符来执行此任务或者是否有其他解决方案?
我发现了一个关联这里,但它没有告诉如何只选择图像文件,任何帮助都将不胜感激。提前致谢。
答案1
假设您想要的文件扩展名 jpg、jpeg、gif 和 png;并且假设您想要从当前目录中提取文件名:
powershell "dir *.jpg,*.jpeg,*.gif,*.png | ForEach-Object {echo ($_.BaseName -replace 'HS3-HTS-', '')}" > Output.txt
如果需要递归搜索,使用单个命令在多个目录中查找文件,则以下命令可能有效(只需将“C:\”替换为所需的驱动器或基目录):
powershell "Get-ChildItem -Path C:\ -Recurse -Include *.jpg,*.jpeg,*.gif,*.png | ForEach-Object {echo ($_.BaseName -replace 'HS3-HTS-', '')}" > Output.txt
请注意,上述两个示例都会将列表放入位于当前目录中名为“Output.txt”的文件中。通过当前目录,我指的是使用命令提示符查看的目录。如果您想直接在命令提示符中查看输出,而不必打开文件,只需省略> Output.txt
上述命令中的最后一个即可。另请注意,尽管基于 PowerShell,但上述命令是在普通命令提示符下运行的。“powershell”部分告诉它使用 PowerShell 解析命令。