PowerShell-正在与Get ChildItem进行斗争
我对这个很着迷,希望有人能帮我。请温柔一点,我的编码技术不是很好 我有两个单独的CSV文件,我正试图对它们进行比较。每个CSV包含一个计算机帐户列表。我想将这两个文件之间的差异导出到一个新的CSV。一个文件位于定义的目录中,但另一个文件位于单独的目录结构中。下面是一个例子: 定义目录中的文件1:PowerShell-正在与Get ChildItem进行斗争,powershell,Powershell,我对这个很着迷,希望有人能帮我。请温柔一点,我的编码技术不是很好 我有两个单独的CSV文件,我正试图对它们进行比较。每个CSV包含一个计算机帐户列表。我想将这两个文件之间的差异导出到一个新的CSV。一个文件位于定义的目录中,但另一个文件位于单独的目录结构中。下面是一个例子: 定义目录中的文件1:C:\blah\xyz.csv 文件2位于不同的目录中:C:\share\uploads\foo\bar\xyz computers.csv 这些文件名的XYZ部分是客户端名称,路径的\foo\bar\部
C:\blah\xyz.csv
文件2位于不同的目录中:
C:\share\uploads\foo\bar\xyz computers.csv
这些文件名的XYZ部分是客户端名称,路径的\foo\bar\
部分对于每个文件可能不同。每个文件名始终以*-computers.csv
结尾。我正在尝试使用搜索结果与定义目录中的文件进行比较。由于我对编码一无所知,所以失败得很惨。(我正在努力!)
这是我的。由于$file2
为空,似乎失败:
gci C:\share\uploads -include *computers.csv -recurse | foreach {$path = $_.FullName;
$client = $_.Name.Trim("-computers.csv");
$file1 = import-csv -path c:\workingdir\output\$client.csv;
$file2 = import-csv -path $path | Compare-Object $file1 $file2 -property Name} | export-csv C:\workingdir\$client.csv -NoTypeInformation
任何协助都将不胜感激。我卡住了 没有一些示例CSV文件,不确定我是否修复了它或使它变得更糟。其中一些问题:
比较对象
导入CSV
调用是否有效的代码,如果无效,则编写消息Trim
失败。我把它换了$files=Get ChildItem C:\share\uploads-include*computers.csv-recurse
$files | Foreach对象{
$path=$\ux.FullName
写详细的“路径:$Path”-详细
$client=$\ux.Name.Replace(“-computers.csv”,”)
编写详细的“客户端:$Client”-详细
$file1=导入Csv-路径c:\workingdir\output\$client.Csv
$file2=导入Csv-路径$path
如果($file1-和$file2){
比较对象$file1$file2-属性名称
}
其他的
{
写入详细信息-消息“错误处理$path”-详细信息
}
}|导出Csv C:\workingdir\$client.Csv-notype信息
没有一些示例CSV文件,不确定我是否修复了它或使它变得更糟。其中一些问题:
比较对象
导入CSV
调用是否有效的代码,如果无效,则编写消息Trim
失败。我把它换了$files=Get ChildItem C:\share\uploads-include*computers.csv-recurse
$files | Foreach对象{
$path=$\ux.FullName
写详细的“路径:$Path”-详细
$client=$\ux.Name.Replace(“-computers.csv”,”)
编写详细的“客户端:$Client”-详细
$file1=导入Csv-路径c:\workingdir\output\$client.Csv
$file2=导入Csv-路径$path
如果($file1-和$file2){
比较对象$file1$file2-属性名称
}
其他的
{
写入详细信息-消息“错误处理$path”-详细信息
}
}|导出Csv C:\workingdir\$client.Csv-notype信息
首先,我不会把所有内容都放在一行上。通过删除管道分隔此行:$file2=import csv-path$path | Compare Object$file1$file2-property Name
首先,我不会将所有内容放在一行。通过删除管道分隔此行:$file2=import csv-path$path | Compare Object$file1$file2-property Name
谢谢Travis,只需一次修改即可完美完成:我将管道连接到Compare Object行的末尾,并在其中添加了export csv命令。谢谢Travis,这只需要一个修改就可以完美地工作:我用管道连接比较对象行的末尾,并在其中添加了导出csv命令。