Powershell行情

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

我正在尝试使用带有输入的csv文件回显文件的特定路径以用作变量。

到目前为止,我得到了一些简单的东西,

$input = Import-Csv 'C:\Folder\file.csv' -Header "User"
echo 'C:\Users\User\Desktop\folder\'$input.User'.txt'

输出是

C:C:\Users\User\Desktop\folder\
Tom
.txt

我想要的输出是:

C:\Users\User\Desktop\folder\Tom.txt

我该怎么办呢?

powershell quote
1个回答
1
投票

除了我的评论,你可以利用string subexpression来实现你的目标(注意双引号作为单引号表示不扩展变量的字符串文字):

$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运算符的参数数组; useful article):

'C:\Users\User\Desktop\folder\{0}.txt' -f $row.User

或变量扩展:

$user = $row.User
"C:\Users\User\Desktop\folder\$user.txt"

脚注:使用echoWrite-Output的别名)是不必要的,因为任何未“捕获”的输出(通过使用重定向或变量赋值)都将输出到成功流(即控制台)。见this document about streams and redirection

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