【问题标题】:Powershell loop through folders, create file in each folderPowershell遍历文件夹,在每个文件夹中创建文件
【发布时间】:2015-11-05 11:09:28
【问题描述】:

我正在尝试递归遍历目录中的所有文件夹,然后在每个目录中执行某些操作。例如,创建一个文本文件。

我可以像这样将所有子文件夹放入一个变量中:

$folders = Get-ChildItem -Recurse | ?{ $_.PSIsContainer }

但是,我似乎无法在每个子目录中创建文件 - 而是在*目录中创建文件。这不起作用:

$folders | ForEach-Object { New-Item -ItemType file -Name "$_.txt" -path $_}

这会引发找不到目录或路径太长的错误。

如何在嵌套文件夹的每个子目录中进行操作?

【问题讨论】:

    标签: loops powershell


    【解决方案1】:

    试试这个:

    Get-ChildItem -Recurse -Directory | ForEach-Object {New-Item -ItemType file -Path "$($_.FullName)" -Name "$($_.Name).txt" }
    

    基本上,Get-ChildItem 命令返回一系列DirectoryInfo 对象。 FullName 属性包含完整路径,而 Name 仅包含叶目录的名称。

    【讨论】: