Powershell循环两个文件

时间:2016-05-10 20:11:30

标签: file loops powershell

今天我已经用Google搜索了一段时间,似乎无法解决我的问题。我有一个文件,每行有一个名字:

    file1.txt
    -----
    name1
    name2
    name3/

在Powershell中,我将它们传递给cmdlet:

    Get-Content file1.txt | ForEach-Object {
        Get-XYZ -Name $_ -Type HTML -Path $_
    }

问题是-Path参数不接受/,但Name参数需要它才能运行。我试图将所需的路径写入包含在引号中的文件中:

    Get-Content file1.txt | ForEach-Object {
        '"C:\' + $_ + '.htm"'
    } > file2.txt

问题是我有两个文件,所以我尝试:

    $var1 = Get-Content file2.txt

    Get-Content file1.txt | ForEach-Object {
        Get-XYZ -Name $_ -Type HTML -Path $var1 
    }

然后我得到的错误是$ var1是一个数组,而不是一个字符串。有办法吗?

    Get-Content file1.txt,file2.txt | ForEach-Object {
        Get-XYZ -Name $_ -Type HTML -Path $$__
    }

其中$ _是file1.txt中的第一行,而$$ __是第一行,就像在file2.txt中一样?我意识到$$ __不是一个真实的东西,但只是想知道是否有引用该语句中每个文件的第一行。如果不是这样的话会有什么好处?我尝试过很多东西,这只是我想去的地方的一个基本例子。

1 个答案:

答案 0 :(得分:1)

删除路径值的尾随/

Get-Content file1.txt | ForEach-Object {
    Get-XYZ -Name $_ -Type HTML -Path ($_ -replace '/$')
}