我正在编写一个PowerShell脚本,以创建多个目录并将一堆文件复制到一起,以“编译”一些技术文档。我想生成文件和目录的 list 作为自述文件的一部分,并且我希望PowerShell能够这样做,因为我已经在PowerShell中进行“编译”。
我已经进行了一些搜索,看来我需要使用cmdlet“Get-ChildItem”,但是它给了我太多数据,而且我不清楚如何格式化和删减我不知道的内容想要得到我想要的结果。
我想要类似以下的输出:
Directory
file
file
file
Directory
file
file
file
Subdirectory
file
file
file
也许是这样的:
+---FinGen
| \---doc
+---testVBFilter
| \---html
\---winzip
换句话说,树形结构的某种基本视觉ASCII表示形式包括目录和文件名,仅此而已。我见过执行此操作的程序,但是我不确定PowerShell是否可以执行此操作。
PowerShell可以这样做吗?如果是这样,Get-ChildItem是正确的cmdlet吗?
最佳答案
在您的特定情况下,您想要的是Tree /f
。您有一条评论,询问如何剥离前面的部件,并讨论其体积,序列号和驱动器号。在将输出发送到文件之前,可以对输出进行过滤。
$Path = "C:\temp"
Tree $Path /F | Select-Object -Skip 2 | Set-Content C:\temp\output.tkt
上例中Tree的输出是一个我们可以操纵的
System.Array
。 Select-Object -Skip 2
将删除包含该数据的前两行。另外,如果Keith Hill在身边,他还将推荐包含cmdlet Show-Tree
的PowerShell社区扩展(PSCX)。如果您好奇,请从here下载。那里有很多强大的东西。
关于powershell - 使用PowerShell生成文件和目录列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27447014/