我有一个包含3列的表格:文件夹目录,文件名和数据。我想基于第1列中的各个值在文件系统中创建文件夹,然后在该文件夹下创建文件,其名称与第2列中的名称相同,最后像第3列那样转储该文件中的所有数据。我可以创建一个excel获取我的表的信息,但不确定如何创建文件夹/文件并递归转储数据。非常感谢您的帮助。
答案 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很不错,因为它会自动处理反斜杠,正斜杠,尾斜杠等并创建正确的路径。