今天我已经用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中一样?我意识到$$ __不是一个真实的东西,但只是想知道是否有引用该语句中每个文件的第一行。如果不是这样的话会有什么好处?我尝试过很多东西,这只是我想去的地方的一个基本例子。
答案 0 :(得分:1)
删除路径值的尾随/
。
Get-Content file1.txt | ForEach-Object {
Get-XYZ -Name $_ -Type HTML -Path ($_ -replace '/$')
}