我尝试准备一个将从CSV创建文件夹和子文件夹的脚本。
当我创建一个包含1列的CSV'名称'像这样
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
}
我想要实现的是像这样的
Name;Letter
XYZ;A
ZXX;B
FFF;B
我希望脚本创建文件夹$ Folder \ Letter \ Name(所以最终路径为D:Test \ A \ XYZ; D:Test \ B \ ZXX; D:Test \ B \ FFF)。欢迎任何建议。
非常感谢。
答案 0 :(得分:0)
这应该会给你想要的结果
Import-Csv 'D:\Test\Test.csv' -Delimiter ';' |
% {
$path = Join-Path $folder $_.Letter;
New-Item -Path $path -Name $_.Name -Type Directory
}
答案 1 :(得分:0)
我试着稍微改进一下脚本。在CSV文件中,名称和字母与DAXaholic提供的脚本一起正常工作,但需要在文件夹Name中添加更多子文件夹。我尝试了这个,但它不能正常工作。
$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。我在剧本中缺少什么?感谢
答案 2 :(得分:0)
如果有人需要类似的脚本,那么这就是解决方案
$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
}
}
答案 3 :(得分:0)
我所做的是将所需的路径放在我的CSV文件中。 Silmiar对上述讨论。 "文件路径"可以替换为您有权访问/读取/写入的任何文件路径。 " Folders.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文件包含: 名称;测试\ A \ A.1;测试\ B \ B.1;测试\ C \ C.1;测试\ d \ D.1
注意:在CSV文件中,它看起来更像是:
我使用了弹出的格式来显示这些格式在csv文件中的单个列中。