Вот как это может выглядеть в Powershell:
Input.csv выглядит так:
Folder Directory,FILE NAME,DATA
Main/A,FILE-A1,DATA-A1
Main/A,FILE-A2,DATA-A2
Main/B,FILE-B1,DATA-B1
Main/C,FILE-C1,DATA-C1
И скрипт выглядит так:
# Load CSV into variable
$CSV = Import-Csv 'C:\script\test\input.csv'
# Set root folder for new folders to be created in
$FolderRoot = 'C:\script\test\root'
# Iterate through each line in $CSV
foreach ($Line in $CSV) {
# Join $FolderRoot and the folder from the current line to a proper path
$Path = (Join-Path $FolderRoot $Line.'Folder Directory')
# Check if folder already exists, create it if not.
if (!(Test-Path $Path)) {
New-Item -Path $Path -ItemType Directory
}
# Write the content of the DATA column into the file in the FILE NAME column.
# Change to Add-Content if you want to add info to the file instead of overwriting.
Set-Content -Path (Join-Path $Path $Line.'FILE NAME') -Value $Line.'DATA'
}
Join-Path хорош, потому что он автоматически обрабатывает обратную косую черту, прямую косую черту, конечную косую черту и т. Д. И создает правильный путь.