Powershell 行情
Powershell Quotes
我正在尝试使用带有输入作为变量的 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
我该怎么做?
除了我的评论之外,您还可以利用 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"
脚注:使用 echo
(Write-Output
的别名)是不必要的,因为任何不是 "captured" 的输出(通过使用重定向或变量赋值)都将输出到成功流(即,控制台)。参见 this document about streams and redirection。
我正在尝试使用带有输入作为变量的 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
我该怎么做?
除了我的评论之外,您还可以利用 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"
脚注:使用 echo
(Write-Output
的别名)是不必要的,因为任何不是 "captured" 的输出(通过使用重定向或变量赋值)都将输出到成功流(即,控制台)。参见 this document about streams and redirection。