我有一个类似这样的文本文件:
Year= YYYY
Month= MM
然后我读入文件,选择我想要的行,拆分行,以便我只得到“=”符号右侧的内容,修剪空格,然后使用以下代码将其全部放入变量中:
$Year=Get-Content -Path .\test.txt | Where-Object {$_ -match 'Year='}
$Year=($Year -Split 'Year=').trim()
对于我拥有的每个设置(即年、月、日、时间),都会重复上述代码。
当我将 $Year 放入命令提示符时,我得到“YYYY”(没有前导空格);但是当我使用 Write-Host 时,我得到“YYYY”(有一个前导空格)。
由于文件路径和文件命名原因,我能够将 $Year $Month 放在eathother 旁边,这一点很重要。(即 .\YYYY\MM 或 YYYYMM.txt)。
我努力了:
Write-Host "Example: $Year\$Month"
Write-Host "Example: " $Year "\" $Month
Write-Host ("Example: $($Year)\$($Month)")
Write-Host "Example: $Year\" + $Month"
Write-Host "Example: $Year\" -f $Month"
....and several ways of implementing .trim() with no success.
如果问题不在 Write-Host 行,那么我唯一能想到的另一件事就是它必须与数据如何写入变量有关。请记住,这只是一个例子,我的实际问题更大。这只是我需要完成的一个简单示例。
快速更新:我发现了一个很长的解决方法,如下所示:
Write-Host "$Year\" -nonewline
Write-Host "$Month\".trim() -nonewline
Write-Host "$Day\".trim() -nonewline
但是必须有更好的方法来做到这一点。我在实际代码中使用了大约 8 个变量。因此,给出 1 个文件名和路径的示例将是 8 行长......这将是愚蠢的。