当变量用引号引起来时,如何仍然获得文本文件的每一行?

问题描述 投票:0回答:1

我一直在与Powershell混为一谈,并在进行过程中仔细搜索各种内容。这一点很难用谷歌理解的语言来表达。我可以通过索引来获取Powershell中文本文件的独立行:

$textFile = Get-Content "myText.txt"
$textFile[0]

这将输出文本文件的第一行。但是,当我将文本文件放在引号中时,它将输出所有行,即使使用索引

"$textFile[0]"

在将变量用引号引起来时,如何仍然只能得到想要的行?如果我尝试"$textFile"[0],它将像以前一样给我整个文件。我尝试执行此操作的原因是因为我正在尝试使文本文件的这一行成为我可以执行的较大字符串的一部分

$remote = "Enter-PSSession -ComputerName`", textFile[0]"

Invoke-Expression $remote

这是我要说明的方式。

powershell
1个回答
1
投票

您可以使用以下任何一种方法:

# Sub-expression operator
"$($textFile[0])"

# String format operator
"{0}" -f $textFile[0]

# Concatenation
("Text"+$textFile[0])

用双引号引起来表示PowerShell在其中扩展字符串。其中的任何变量都会被插值。变量以$开头,其后的名称只能具有某些字符,而无需特殊的转义符。 [将需要转义,并且由于不能转义,因此PowerShell解释以[之前的字符结尾的变量名称。因此,将内插$textFile,将整个文件内容转换为字符串,并在字符串的末尾附加[0]

© www.soinside.com 2019 - 2024. All rights reserved.