合并来自2个csv文件的数据并创建新文件

时间:2017-10-24 10:53:26

标签: powershell csv

我有2个csv文件。 第一个是这一栏:

"www.test.com/"
"www.test2.com/"
"www.test3.com/"
"www.test4.com/"

,第二栏有这一栏:

"a"
"b"
"c"
"d"

现在我想用这个表单创建一个csv文件:

"www.test.com/a"
"www.test.com/b"
"www.test.com/c"
"www.test.com/d"
"www.test2.com/a"
"www.test2.com/b"
"www.test2.com/c"
"www.test2.com/d"
"www.test3.com/a"
"www.test3.com/b"
"www.test3.com/c"
"www.test3.com/d"
"www.test4.com/a"
"www.test4.com/b"
"www.test4.com/c"
"www.test4.com/d"

我想以这种方式创建一个新的csv文件来编译来自两个csv文件的数据。

3 个答案:

答案 0 :(得分:1)

使用Join-Object

(执行Join没有-On(别名-Using)参数将返回交叉加入,请参阅:https://stackoverflow.com/a/45483110/1701026

PS C:\> $Url | Join $Letter

Letter Url
------ ---
a      www.test.com/
b      www.test.com/
c      www.test.com/
d      www.test.com/
a      www.test2.com/
b      www.test2.com/
c      www.test2.com/
d      www.test2.com/
a      www.test3.com/
b      www.test3.com/
c      www.test3.com/
d      www.test3.com/
a      www.test4.com/
b      www.test4.com/
c      www.test4.com/
d      www.test4.com/

注意:Import-Csv需要.csv文件中的标题或'-Header`参数定义的标题(请参阅:https://stackoverflow.com/a/20528112/1701026

$Url = Import-Csv ".\URL.csv" -Header Url
$Letter  = Import-Csv ".\Letter.csv" -Header Letter

答案 1 :(得分:0)

我认为您需要为此编写带有嵌套for循环的VBA宏。以下是没有代码的步骤,如果我有时间,我可以稍后嘲笑它。

在空白电子表格的宏中。

  • 将第一个csv的内容放在定义的范围“rng1”
  • 将第二个csv的内容放在定义的范围“rng2”
  • 在k = 1时启动活动工作表中行的计数器。
  • 对于第一个范围(test1.com)中的每个值
  • 对于第二范围(a)中的每个值
  • 将活动工作表中第k行的值设置为rng1.value& rng2.value
  • 增量k
  • end insideloop
  • end outsideloop

这里隐藏着一个解决方案。你自己尝试过什么吗?

答案 2 :(得分:0)

如果列入相应的csv文件的名称为ColumnURL和ColumnLetter,请尝试以下操作:

$ListURL=import-csv "C:\temp\URL.csv"
$ListLetter=import-csv "C:\temp\Letter.csv"

$ListURL | %{$CurrentURL=$_; $ListLetter | %{ "{0}{1}" -f $CurrentURL.ColumnURL, $_.ColumnLetter}}