创建文件夹->文件->并将数据转储到这些文件中

时间:2019-04-17 12:32:54

标签: sql sql-server powershell cmd filesystems

我有一个包含3列的表格:文件夹目录,文件名和数据。我想基于第1列中的各个值在文件系统中创建文件夹,然后在该文件夹下创建文件,其名称与第2列中的名称相同,最后像第3列那样转储该文件中的所有数据。我可以创建一个excel获取我的表的信息,但不确定如何创建文件夹/文件并递归转储数据。非常感谢您的帮助。 Table Content

1 个答案:

答案 0 :(得分:1)

这是在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很不错,因为它会自动处理反斜杠,正斜杠,尾斜杠等并创建正确的路径。