Powershell 从txt文件中读取要与复制项一起使用的值

Powershell 从txt文件中读取要与复制项一起使用的值,powershell,Powershell,请提供一些帮助,我有一个文本文件config.txt,里面有以下值 [Paths] Sourcepath="y:\enterprise\team\input" TempPath="y:\enterprise\team\temp" DestPath="y:\enterprise\team\Output" 新加入powershell,因此任何帮助都将非常有用 要将信息拉入PowerShell,需要导入数据。对于纯文本文件,获取内容是典型的方法。正如在另一个答案中所指出的,文本文件是INI格式的,因此

请提供一些帮助,我有一个文本文件
config.txt
,里面有以下值

[Paths] Sourcepath="y:\enterprise\team\input" TempPath="y:\enterprise\team\temp" DestPath="y:\enterprise\team\Output"
新加入powershell,因此任何帮助都将非常有用

要将信息拉入PowerShell,需要导入数据。对于纯文本文件,获取内容是典型的方法。正如在另一个答案中所指出的,文本文件是INI格式的,因此您需要对其进行操作,以使其在脚本中可用

一个问题是,您是否将config.txt文件用于其他目的?如果只针对这一个脚本,那么我建议将中的三个路径声明为主脚本中的变量

如果它用于其他系统,并且需要保持这种格式,那么您需要弄清楚如何解析每一行获取内容会将其作为一个数组拉入,以便您可以遍历每一行


如果它用于其他系统,并且您可以更改格式,我建议切换到CSV,每个列都是不同的路径名。然后,如果使用导入CSV,则可以执行$variable.SourcePath、$variable.TempPath和$variable.DestPath。

将信息拉入PowerShell,您需要导入数据。对于纯文本文件,获取内容是典型的方法。正如在另一个答案中所指出的,文本文件是INI格式的,因此您需要对其进行操作,以使其在脚本中可用

一个问题是,您是否将config.txt文件用于其他目的?如果只针对这一个脚本,那么我建议将中的三个路径声明为主脚本中的变量

如果它用于其他系统,并且需要保持这种格式,那么您需要弄清楚如何解析每一行获取内容会将其作为一个数组拉入,以便您可以遍历每一行

如果它用于其他系统,并且您可以更改格式,我建议切换到CSV,每个列都是不同的路径名。然后,如果使用导入CSV,则可以执行$variable.SourcePath、$variable.TempPath和$variable.DestPath。

你可以使用这个功能

function Get-IniContent ($filePath)
{
    $ini = @{}
    switch -regex -file $FilePath
    {
        “^\[(.+)\]” # Section
        {
            $section = $matches[1]
            $ini[$section] = @{}
            $CommentCount = 0
        }
        “^(;.*)$” # Comment
        {
            $value = $matches[1]
            $CommentCount = $CommentCount + 1
            $name = “Comment” + $CommentCount
            $ini[$section][$name] = $value
        } 
        “(.+?)\s*=(.*)” # Key
        {
            $name,$value = $matches[1..2]
            $ini[$section][$name] = $value
        }
    }
    return $ini
}

你可以使用这个功能

function Get-IniContent ($filePath)
{
    $ini = @{}
    switch -regex -file $FilePath
    {
        “^\[(.+)\]” # Section
        {
            $section = $matches[1]
            $ini[$section] = @{}
            $CommentCount = 0
        }
        “^(;.*)$” # Comment
        {
            $value = $matches[1]
            $CommentCount = $CommentCount + 1
            $name = “Comment” + $CommentCount
            $ini[$section][$name] = $value
        } 
        “(.+?)\s*=(.*)” # Key
        {
            $name,$value = $matches[1..2]
            $ini[$section][$name] = $value
        }
    }
    return $ini
}

config.txt
是INI格式的,因此您希望像这样解析它并从结果哈希表中获取路径。用于解析INI文件的PowerShell代码很容易找到。您的“复制项”命令格式不正确,请查看的文档以了解如何正确使用该命令。文档中的也将对您有所帮助。
config.txt
是INI格式的,因此您希望像这样解析它,并从生成的哈希表中获取路径。用于解析INI文件的PowerShell代码很容易找到。您的“复制项”命令格式不正确,请查看的文档以了解如何正确使用该命令。文档中的内容也将对您有所帮助。