我有一个脚本,基本上写下远程共享上的每个文件和文件夹,并将其转储到csv。一切都运行得非常好(除了最后一部分之外,还有很多工作需要在脚本本身上完成)。
import-csv -path ($savelocation + '\' + $filename) -Delimiter ',' | ForEach-Object {
if ($audioarray -contains $_.Extension) {
$_.MediaType = 'Audio'
$_
} elseif ($videoarray -contains $_.Extension) {
$_.MediaType = 'Video'
$_
} elseif ($otherarray -contains $_.Extension) {
$_.MediaType = 'Other'
$_
} else {
$_
}
} | Export-Csv -Path ($savelocation + '\' + $filename) -Force -Delimiter ',' -NoTypeInformation
如果我将路径更改为类似\\servername\share\testfolder
的静态位置,则可以正常工作。但是如果我使用上面的内容,或者即使我将($ savelocation +'\'+ $ filename)加入到像$ filename这样的东西中,它仍然会写一个空文件。
答案 0 :(得分:3)
抱歉,但它不适用于任何路径。原因很简单 - 您可以读/写同一个文件。它将工作,如果你读入变量,并处理内存中的数据。
具有存储在变量中的路径(元素)的IMO与它无关。顺便说一句:您可以使用Join-Path cmdlet加入路径...:)
答案 1 :(得分:1)
如果您将路径放在可靠的
中,它将起作用$path = $savelocation + '\' + $filename
Export-Csv -Path $path -Force -Delimiter ',' -NoTypeInformation