【问题标题】:PowerShell read csv column and adjacent cell line by linePowerShell逐行读取csv列和相邻单元格
【发布时间】:2020-11-10 10:56:11
【问题描述】:

我有一个包含 2 列的 CSV。 我很难在单元格 B2 中复制文件夹路径的内容并粘贴到 B1 的路径中 然后遍历 csv 文档的每一行。

我的 CSV 看起来像这样...

"OriginalName","NewName"

"C:\Share-Temp","\\\networkLoc\C_Share-Temp"
"C:\Users\Mtr54\AppData\Local\Greenshot","\\\networkLoc\C_Users_Mtr54_AppData_Local_Greenshot"
"C:\Users\Mtr54\AppData\Local\Audacity","\\\networkLoc\C_Users_Mtr54_AppData_Local_Audacity"

.

$csv = import-csv "\\networkLoc\csv.csv" | foreach {
$line in $csv Copy-Item -path $t2\$($_.NewName) -Destination $_.OriginalName -Recurse  -Force
}

但运气不好..

有人对我的困境提出一些建议吗?

TIA

【问题讨论】:

  • 你想用你古怪的 foreach 循环来实现什么?为什么不直接做import-csv "\\networkLoc\csv.csv"
  • 您将foreach 命令与foreach-object 的别名foreach 混合使用。 foreach 命令的语法为 foreach ($line in $csv) { ... }foreach 命令中没有 $_,因为在此特定示例中,当前项目是 $line
  • AdminOfThings - 你对 foreach 对象很了解。这纠正了这个问题。现在我需要弄清楚如何将文件夹的内容复制到目的地..
  • 使用测试路径和通配符我成功地完成了这部分脚本。谢谢大家的帮助。

标签: powershell csv


【解决方案1】:

您的 CSV 是否有标题?因为您应该使用标题名称进行调用

$csv = import-csv "\networkLoc\csv.csv" foreach($csv 中的 $line){ 复制项目 -path $line.Header1$line.header2 -Destination $line.OriginalName -Recurse -Force }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-09
    • 2016-07-24
    • 1970-01-01
    • 2012-08-23
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多