Создать папку -> Файлы -> и выгрузить данные в эти файлы - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть таблица с 3 столбцами: папка, имя файла и данные. Я хочу создать папки в моей файловой системе на основе различных значений в столбце 1, затем создать файлы в этой папке с именем, как в столбце 2, и, наконец, сбросить все данные внутри этого файла, как в столбце 3. Я могу создать Excel иметь информацию о моих таблицах, но не уверен, как я могу создавать папки / файлы и рекурсивно выводить данные. Любая помощь высоко ценится. Table Content

1 Ответ

1 голос
/ 17 апреля 2019

Вот как это может выглядеть в 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 хорош, потому что он автоматически обрабатывает обратную косую черту, прямую косую черту, конечную косую черту и т. Д. И создает правильный путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...