Powershell用于从CSV创建文件夹和文件夹

weylhg0b  于 2023-11-14  发布在  Shell
关注(0)|答案(6)|浏览(148)

我尝试准备一个脚本,将创建文件夹和CSV文件夹。
当我创建一个CSV与1列'名称'这样

Name
XYZ
ZXX
FFF

字符串
用下面的脚本我可以实现创建文件夹

$folder = "D:\Test\"
$name = Import-Csv D:\Test\Test.csv
Foreach ($line in $name)
{
    New-Item -path $folder -Name $line.Name -Type Directory
}


我想实现的是这样的CSV

Name;Letter 
XYZ;A
ZXX;B
FFF;B


我希望该脚本创建文件夹$Folder\Letter\Name(因此最终路径为D:Test\A\XYZ; D:Test\B\ZXX; D:Test\B\FFF)。欢迎提供任何建议。
非常感谢.

ux6nzvsh

ux6nzvsh1#

我试图改进脚本一点点.在CSV文件中的名称和字母,与DAXaholic提供的脚本很好地工作,但需要添加一些更多的文件夹名称.我试过这个,但它不工作,因为我需要.

$folder = "D:\Test\"
    $subfolders = "Volvo","Skoda","Tesla"
    $file = Import-Csv 'D:\Test\Test.csv' -Delimiter ';' 
    $file | 
     % { 
            $path = Join-Path $folder $_.Letter; 
            New-Item -Path $path -Name $_.Name -Type Directory 
    }

foreach ($subfolder in $subfolders) 
{
$file | 
%{
 $path2 = Join-Path $folder $_.Letter $_.Name;
 New-Item -Path $path2\$subfolder -Type Directory 
}
    }

字符串
我想实现的是以下.脚本应该检查CSV文件,创建CSV文件中的用户把它放在文件夹中,并在名称文件夹中创建3个字符串.例如D:\Test\A\XYZ\Volvo,Skoda,Tesla.我在脚本中缺少什么?谢谢

qaxu7uf2

qaxu7uf22#

如果有人需要类似的脚本,那么这里是解决方案

$folder = "D:\Test\"
$subfolders = "Volvo","Skoda","Tesla"
$file = Import-Csv 'D:\Test\Test.csv' -Delimiter ';' 
$file | 
 % { 
        $path = Join-Path $folder $_.Letter; 
        New-Item -Path $path -Name $_.Name -Type Directory 
}
foreach ($subfolder in $subfolders)
{ 
$file | %{
 $path2 = Join-Path $folder $_.Letter;
 $path3 = Join-Path $path2 $_.Name;
 New-Item -Path $path3\$subfolder -Type Directory 
   }
}

字符串

6ie5vjzr

6ie5vjzr3#

这应该会给你给予想要的结果

Import-Csv 'D:\Test\Test.csv' -Delimiter ';' |
    % { 
        $path = Join-Path $folder $_.Letter; 
        New-Item -Path $path -Name $_.Name -Type Directory 
    }

字符串

ubof19bj

ubof19bj4#

我所做的是把所需的路径在我的CSV文件。类似于上面的讨论。“FilePath”可以替换为任何文件路径,你可以访问读/写从/到。“.csv”是我使用的CSV文件的名称。只要powershell可以访问它,您可以为该csv文件命名任何您想要的名称。并且计算机不会对该文件的名称有任何问题。大多数计算机会告诉你它是否不喜欢你使用的csv文件名。如果不是,PowerShell会告诉你。
下面是我的PowerShell代码的一个例子:

$path = "FilePath"
$Name = import-csv -Path 'FilePath\Folders.csv'
foreach ($i in $Name) {
New-Item -Path $path -Name $i.Name -ItemType Directory
}

字符串
示例CSV文件具有以下内容:
第一个月
注意:在CSV文件中,它看起来更像这样:

Name
Testing\A\A.1
Testing\B\B.1
Testing\C\C.1
Testing\D\D.1

yacmzcpb

yacmzcpb5#

我创建了以下PowerShell脚本,它将基于CSV文件在这些文件夹下创建文件夹和不同的文件夹。

#Set Location for folder creation

Set-Location "S:\Folder" 

# Import the CSV file
$csvFile = Import-Csv "S:\Folder\FolderNames1.csv"

# Loop through each row in the CSV file
foreach ($row in $csvFile) {

    # Get the folder path
    $Folder = $row.Folder

    # Create the folder
    New-Item -ItemType Directory -Path $Folder

    # If the row contains subfolder names, create each subfolder
    if ($row.Subfolder) {
        foreach ($Subfolder in $row.Subfolder) {
            $subFolderPath = $folder + "\" + $Subfolder
            New-Item -ItemType Directory -Path $SubfolderPath
        }
    }
}

字符串
CSV具有以下格式

Folder,Subfolder
Folder 1,Subfolder1
Folder 1,Subfolder2
Folder 1,Subfolder3
Folder 2,Subfolder4
Folder 2,Subfolder5
Folder 2,Subfolder6

fcwjkofz

fcwjkofz6#

我认为这是合理的代码:

Set-Location "D:\Folder" 
$subfolders = "1.Requested","2.Evidence","3.Complete"
$Folders = Import-Csv D:\Folder\csv\Fodlers.csv 
 
ForEach ($Folder in $Folders) { 
 
New-Item $Folder.Name -type directory 
  Foreach ($subfolder in $subfolders)
   { 
 $path = Join-Path $Folder.Name -ChildPath " ";
 New-Item $path\$subfolder -Type Directory 
   }
}

字符串
版权所有:阮玉英俊

相关问题