Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更换Powershell中的侧指示灯_Powershell - Fatal编程技术网

更换Powershell中的侧指示灯

更换Powershell中的侧指示灯,powershell,Powershell,我遇到了一个死胡同,我希望你在这个问题上的专业知识:) 我有两个文件 打印机名称及其驱动程序-具有NoteProperty的name和DriverName 打印机驱动程序-具有Name(驱动程序名称)的NoteProperty和MajorVersion 它的全部意义在于知道哪台打印机有哪种类型的驱动程序 例如: 打印机驱动器名称主版本 我知道,Get Driver的输出只获取驱动程序名和打印机名。而获取驱动程序inter获取驱动程序和主版本 我想比较这两个命令,然后将输出合并到一个文件中,Sid

我遇到了一个死胡同,我希望你在这个问题上的专业知识:)

我有两个文件

  • 打印机名称及其驱动程序-具有
    NoteProperty
    name
    DriverName
  • 打印机驱动程序-具有
    Name
    (驱动程序名称)的
    NoteProperty
    MajorVersion
  • 它的全部意义在于知道哪台打印机有哪种类型的驱动程序 例如:

    打印机驱动器名称主版本

    我知道,
    Get Driver
    的输出只获取驱动程序名和打印机名。而
    获取驱动程序inter
    获取驱动程序和主版本

    我想比较这两个命令,然后将输出合并到一个文件中,
    SideIndicator
    替换为
    MajorVersion

    到目前为止,我已经做到了:

    #This is the Printer Drives File - Has Name(DriverName) and MajorVersion(type) fields
    $Drivers = Import-Csv .\PrinterDrivers.csv
    
    #This is the Printer File - Has Printer Name and Driver Name
    $PrinterNames = Import-Csv .\Printers.csv
    
    #This Compares between the 2 objects
    $Comparison = Compare-Object -ReferenceObject $PrinterNames -DifferenceObject $Drivers -PassThru -IncludeEqual
    { Foreach ($Device in $Comparison) {
            if ($_.SideIndicator -eq "==" ) {
            $_.SideIndicator = $Drivers.MajorVersion
        }
            if ($_.SideIndicator -eq "<=") {
                $_.SideIndicator = $Drivers.MajorVersion
            }
        }
    }
    
    是否可以将删除
    侧指示灯
    改为显示
    主版本


    或者…我必须创建只有一列的原始
    printer.csv
    ,对
    PrinterDrivers.csv
    运行它,然后重新运行与原始
    printer.csv
    的比较,原始
    printer.csv
    有两列?

    看起来您实际上对进行比较不感兴趣

    您当前的代码(即使有比较)并没有多大意义,因为您要分配所有驱动程序版本,而不是一个版本,以防它工作

    我假设你的打印机名是你真正感兴趣的。因此,您可以循环查看每个驱动程序,并在驱动程序数据文件中查找信息

    # This is the Printer Drives File - Has Name(DriverName) and MajorVersion(type) fields
    $drivers = Import-Csv .\PrinterDrivers.csv
    # This is the Printer File - Has Printer Name and Driver Name
    $printerNames = Import-Csv .\Printers.csv
    
    foreach($printer in $printerNames){
        $driverVersion = $drivers | Where driverName -eq $printer.driverName
        $printer | Select-Object -Property @{Name = "Printer Name"; Expression = {$printer.Name}}, @{Name = "Driver Version"; Expression={$driverVersion}} 
    }
    

    看起来你对比较并不感兴趣

    您当前的代码(即使有比较)并没有多大意义,因为您要分配所有驱动程序版本,而不是一个版本,以防它工作

    我假设你的打印机名是你真正感兴趣的。因此,您可以循环查看每个驱动程序,并在驱动程序数据文件中查找信息

    # This is the Printer Drives File - Has Name(DriverName) and MajorVersion(type) fields
    $drivers = Import-Csv .\PrinterDrivers.csv
    # This is the Printer File - Has Printer Name and Driver Name
    $printerNames = Import-Csv .\Printers.csv
    
    foreach($printer in $printerNames){
        $driverVersion = $drivers | Where driverName -eq $printer.driverName
        $printer | Select-Object -Property @{Name = "Printer Name"; Expression = {$printer.Name}}, @{Name = "Driver Version"; Expression={$driverVersion}} 
    }
    

    Compare对象
    surly用于比较相似的事物以发现差异,您似乎试图使用它进行查找。散列不是更好的选择:

    $Drivers = @{} 
    Import-Csv .\PrinterDrivers.csv | % {$Drivers[$_.DriverName] = $_.MajorVersion}
    $Printers = Import-Csv .\Printers.csv | % {
      New-Object psobject -property @{
        PrinterName = $_.Name
        DriverName = $_.DriverName
        MajorVersion = $Drivers[$_.DriverName]
      }
    }
    

    Compare对象
    surly用于比较相似的事物以发现差异,您似乎试图使用它进行查找。散列不是更好的选择:

    $Drivers = @{} 
    Import-Csv .\PrinterDrivers.csv | % {$Drivers[$_.DriverName] = $_.MajorVersion}
    $Printers = Import-Csv .\Printers.csv | % {
      New-Object psobject -property @{
        PrinterName = $_.Name
        DriverName = $_.DriverName
        MajorVersion = $Drivers[$_.DriverName]
      }
    }
    

    如果您在三分之二的情况下更换侧指示器,比较的重点是什么?你只对“=>”感兴趣吗?我在比较中有一个模棱两可的地方。你能显示文件内容和预期输出吗?如果你在三分之二的情况下替换了SideIndicator,那么比较的重点是什么?你只对“=>”感兴趣吗?我在比较中有一个模棱两可的地方。你能显示文件内容和预期输出吗?很感谢,但不是发感谢信。很感谢,但不是发感谢信。