В дополнение к моему комментарию вы можете использовать строковое подвыражение для достижения вашей цели (обратите внимание, что двойные кавычки в виде одинарных кавычек указывают на строковый литерал, который не расширяет переменные):
$csv = Import-Csv -Path C:\Folder\file.csv -Header User
foreach ($row in $csv)
{
"C:\Users\User\Desktop\folder\$($row.User).txt"
}
Или конкатенация строк:
'C:\Users\User\Desktop\folder\' + $row.User + '.txt'
Или форматировщик строки (этот метод принимает массив аргументов для оператора -f
; полезная статья ):
'C:\Users\User\Desktop\folder\{0}.txt' -f $row.User
Или расширение переменной:
$user = $row.User
"C:\Users\User\Desktop\folder\$user.txt"
сноска: использование echo
(псевдоним для Write-Output
) не является необходимым, поскольку любой не "захваченный" вывод (с помощью перенаправления или назначения переменной) будет выводиться в поток успеха (т. Е. На консоль). См. этот документ о потоках и перенаправлении .