Ich habe eine Datei mit 2 Zeilen und möchte das erste Wort einer Zeile als Variable festlegen. Nach der Suche habe ich folgendes Skript:
$contents = @(Get-Content C:\testfile.txt)
foreach($line in $contents) {
$s = $line -split ' '
$var1 = $s[0]
$var2 = $s[1]
}
Write-Host "$var1"
Write-Host "$var2"
Die Sache ist, dass dies $s[1]
das zweite Wort der ersten Zeile ist. Wie kann ich $var2
das erste Wort der zweiten Zeile sein und so weiter?
Vielleicht möchten Sie uns sagen, was Sie erreichen, das sieht für mich etwas unangenehm aus. Sie können jedoch bei jeder Iteration nur eine Ihrer Variablen festlegen .
Ich würde den -Begin
Block des Foreach-Object
Cmdlets verwenden, um einen Zähler zu initialisieren und diesen innerhalb der Schleife zu erhöhen:
Get-Content 'C:\testfile.txt' | ForEach-Object -Begin {$i = 1} -Process {
Set-Variable "var${i}" ($_ -split ' ')[0]
$i++
}
Wenn Sie einen weniger dynamischen Ansatz benötigen (wenn es wirklich nur zwei Zeilen gibt), können Sie diesen verwenden:
$content = Get-Content 'C:\testfile.txt'
$var1 = ($content[0] -split ' ')[0]
$var2 = ($content[1] -split ' ')[0]
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen