我有一个 powershell 脚本,我首先在其中导入 csv 并使用该 csv 的内容。使用时,它的形式是:@{name =xyz}
$csv = Import-Csv -Path "C:\test\CLEAN-UP.csv" -Delimiter ";"
Foreach ($item In $csv) {
Write-Output $item
$path = "C:\Users\$item\Downloads"
Write-Output $path
}
路径是这样的: C:\Users@{name =xyz}\Downloads
CSV 看起来像这样:
名字 |
---|
xyz |
zyx |
我现在如何修改我的脚本,使其路径中只有 xyz?
我尝试了此页面上的所有内容,但没有任何效果对我来说:Select Method 返回类似 @{Name=
的字符串您需要过滤输入,使其不再包含标头信息,或者在引用输入值时,明确指定您需要“名称”值。有几种方法可以做到这一点(可能还有其他方法)。
在最初的
Import-Csv
步骤中处理它
$csv = Import-Csv -Path "C:\test\CLEAN-UP.csv" -Delimiter ";" | select -ExpandProperty Name
Foreach ($item In $csv) {
Write-Output $item
$path = "C:\Users\$item\Downloads"
Write-Output $path
}
在
Foreach
步骤内处理
$csv = Import-Csv -Path "C:\test\CLEAN-UP.csv" -Delimiter ";"
Foreach ($item In $csv.name) {
Write-Output $item
$path = "C:\Users\$item\Downloads"
Write-Output $path
}
根据需要单独引用该值(当您从导入的 CSV 引用多个列,因此不想提前过滤它时最有用)
$csv = Import-Csv -Path "C:\test\CLEAN-UP.csv" -Delimiter ";"
Foreach ($item In $csv) {
Write-Output $item.name
$path = "C:\Users\$($item.name)\Downloads"
Write-Output $path
}