Powershell 使用.csv中的文件夹名称进行复制

Powershell 使用.csv中的文件夹名称进行复制,powershell,Powershell,我在D:\temp下有一个这种格式的.csv(带有两列ID和DisplayName) ID显示名 约翰,多伊 史密斯,马克 利兹·拉特·普拉特 ....... 等等 服务器上有一个文件夹(E:\data),在该文件夹下有用户ID已包含某些数据的文件夹。例如: E:\data\jdoe、E:\data\msmith等等。我想写一个脚本,创建一个新文件夹E:\new\u data\Smith,标记并复制E:\data\msmith中的数据 我尝试了以下代码: $csv = Import-Csv

我在D:\temp下有一个这种格式的.csv(带有两列ID和DisplayName) ID显示名 约翰,多伊 史密斯,马克 利兹·拉特·普拉特 ....... 等等

服务器上有一个文件夹(E:\data),在该文件夹下有用户ID已包含某些数据的文件夹。例如: E:\data\jdoe、E:\data\msmith等等。我想写一个脚本,创建一个新文件夹E:\new\u data\Smith,标记并复制E:\data\msmith中的数据

我尝试了以下代码:

   $csv = Import-Csv D:\Temp\temp.csv
   ForEach ($obj in $csv.ID) {
   Foreach ($obj1 in $csv.DisplayName) {
   copy-item D:\Data\$obj D:\New_data\$obj1 -Recurse -Force
   }
   }
但这一步是将旧位置中的所有文件夹复制到要复制到新位置的每个文件夹。我恳请你让我知道我错过了什么?
谢谢

当您使用
Import Csv
时,每一行都作为
pscustomobject
加载,并带有与列标题匹配的字段。在您的情况下,您希望遍历其中的每一个(您的double
foreach
实际上并没有完成任何任务):


忘了添加,我正在尝试在Powershell中实现此功能。PS C:\Windows\system32>$PSVersionTable.PSVersion主要次要版本修订-------------------5 1 14393 2273这种情况看起来变量没有按预期填充,您是否进行了一些基本调试并确保
D:\Data\$obj
实际上是一个有效路径?只需在foreach中打印出要检查的路径。是的,我尝试了$csv.ID,$csv.DisplayName在屏幕上回显变量。我只是不知道如何逐行解析.csv,然后提取源文件夹和目标文件夹的名称,并在copy命令中使用它。工作起来很有魅力。为了弄清楚这件事,我昨天一整天都在挠头。我对你感激不尽。上帝保佑你!!!!
$csv = Import-Csv -Path D:\Temp\temp.csv
foreach ($row in $csv)
{
    $source = $row.ID
    $dest = $row.DisplayName
    Copy-Item -Path "D:\Data\$source" -Destination "D:\New_data\$dest" -Recurse -Force
}