创建多个文件夹和子文件夹

创建多个文件夹和子文件夹

我一直在使用此脚本通过文本文件创建文件夹。如何添加子文件夹?

for /f "tokens=* delims=," %d in (Panels.txt) do md %d

目前,该脚本将文件夹 Panel-A、Panel-B 等制作到 Panel-Z。

我需要每个 Panel-* 文件夹下的子文件夹,名为:

  • 2014_产品
  • 2013_产品

新的文件夹结构如下:

  • 面板-A\2014_产品
  • 面板-A\2013_产品
  • 面板-B\2014_产品
  • 面板-B\2013_产品
  • 面板-Z\2014_产品
  • 面板-Z\2013_产品

如何添加子文件夹?

答案1

您可以使用 PowerShell 来实现这一点。我还没有测试过下面的方法,但它应该可行。

  1. 在您想要开始的文件夹的根目录中创建一个 CSV 文件。
    • 最好使用 Excel 或其他电子表格编辑器,然后“另存为”逗号分隔的 CSV。
    • 命名文件FolderNames.csv
    • 创建两列,分别包含标题NameType
    • 将每个面板文件夹的名称放在名称列中,并Folder放在类型列中。
    • 将每个产品文件夹的名称(每个只能输入一次,而不是针对每个面板/产品组合)放在名称列中,并放在Subfolder类型列中。
  2. 打开一个新的 PowerShell 控制台。
  3. 导航到包含FolderNames.csv
  4. 运行以下命令:

$Folders=Import-Csv FolderNames.csv;$Folders|?{$_.Type-eq'Folder'}|%{$ParentName=$_.Name;New-Item "$ParentName" -ItemType Directory;$Folders|?{$_.Type-eq'Subfolder'}|%{$ChildName=$_.Name;New-Item "$ParentName\$ChildName" -ItemType Directory}}

上面的命令实际上是一个浓缩成(有点长)一行的脚本。下面是扩展版和注释版:

# Import FoldersNames.csv into a variable called $Folders
# This will create an array of objects which have the Name and Type properties as defined in the CSV.

$Folders=Import-Csv FolderNames.csv;

# Filter $Folders down to just objects with a Type value of 'Folder'.
# ? is a built-in alias for Where-Object.

$Folders|?{$_.Type-eq'Folder'}|

# Send the filtered objects into a ForEach-Object loop.
# % is a built-in alias for ForEach-Object.
%{
    # Store the current object's Name in $ParentName.

    $ParentName=$_.Name;

    # Create a new directory named $ParentName.

    New-Item "$ParentName" -ItemType Directory;

    # Filter $Folders down to just objects with a Type value of 'Subfolder'.

    $Folders|?{$_.Type-eq'Subfolder'}|

    # Send the filtered objects into a ForEach-Object loop.
    %{
        # Store the current object's Name in $ChildName.

        $ChildName=$_.Name;

        # Create a new subfolder in $ParentName called $ChildName.

        New-Item "$ParentName\$ChildName" -ItemType Directory
    }
}

请注意,此解决方案本身的可扩展性不是很好。如果您需要创建更深层次的子文件夹,或者根据名称将不同的子文件夹放在某些文件夹中,那么调整此脚本以满足您的需求并不是一件容易的事。但是,它应该可以满足您在问题中概述的目的。

相关内容